mirror of https://github.com/grpc/grpc.git
commit
d7c323f5cd
65 changed files with 1496 additions and 434 deletions
@ -0,0 +1,163 @@ |
||||
/*
|
||||
* |
||||
* Copyright 2017, Google Inc. |
||||
* All rights reserved. |
||||
* |
||||
* Redistribution and use in source and binary forms, with or without |
||||
* modification, are permitted provided that the following conditions are |
||||
* met: |
||||
* |
||||
* * Redistributions of source code must retain the above copyright |
||||
* notice, this list of conditions and the following disclaimer. |
||||
* * Redistributions in binary form must reproduce the above |
||||
* copyright notice, this list of conditions and the following disclaimer |
||||
* in the documentation and/or other materials provided with the |
||||
* distribution. |
||||
* * Neither the name of Google Inc. nor the names of its |
||||
* contributors may be used to endorse or promote products derived from |
||||
* this software without specific prior written permission. |
||||
* |
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
* |
||||
*/ |
||||
|
||||
#ifndef GRPCXX_TEST_MOCK_STREAM_H |
||||
#define GRPCXX_TEST_MOCK_STREAM_H |
||||
|
||||
#include <stdint.h> |
||||
|
||||
#include <gmock/gmock.h> |
||||
#include <grpc++/impl/codegen/call.h> |
||||
#include <grpc++/support/async_stream.h> |
||||
#include <grpc++/support/async_unary_call.h> |
||||
#include <grpc++/support/sync_stream.h> |
||||
|
||||
namespace grpc { |
||||
namespace testing { |
||||
|
||||
template <class R> |
||||
class MockClientReader : public ClientReaderInterface<R> { |
||||
public: |
||||
MockClientReader() = default; |
||||
|
||||
// ClientStreamingInterface
|
||||
MOCK_METHOD0_T(Finish, Status()); |
||||
|
||||
// ReaderInterface
|
||||
MOCK_METHOD1_T(NextMessageSize, bool(uint32_t*)); |
||||
MOCK_METHOD1_T(Read, bool(R*)); |
||||
|
||||
// ClientReaderInterface
|
||||
MOCK_METHOD0_T(WaitForInitialMetadata, void()); |
||||
}; |
||||
|
||||
template <class W> |
||||
class MockClientWriter : public ClientWriterInterface<W> { |
||||
public: |
||||
MockClientWriter() = default; |
||||
|
||||
// ClientStreamingInterface
|
||||
MOCK_METHOD0_T(Finish, Status()); |
||||
|
||||
// WriterInterface
|
||||
MOCK_METHOD2_T(Write, bool(const W&, const WriteOptions)); |
||||
|
||||
// ClientWriterInterface
|
||||
MOCK_METHOD0_T(WritesDone, bool()); |
||||
}; |
||||
|
||||
template <class W, class R> |
||||
class MockClientReaderWriter : public ClientReaderWriterInterface<W, R> { |
||||
public: |
||||
MockClientReaderWriter() = default; |
||||
|
||||
// ClientStreamingInterface
|
||||
MOCK_METHOD0_T(Finish, Status()); |
||||
|
||||
// ReaderInterface
|
||||
MOCK_METHOD1_T(NextMessageSize, bool(uint32_t*)); |
||||
MOCK_METHOD1_T(Read, bool(R*)); |
||||
|
||||
// WriterInterface
|
||||
MOCK_METHOD2_T(Write, bool(const W&, const WriteOptions)); |
||||
|
||||
// ClientReaderWriterInterface
|
||||
MOCK_METHOD0_T(WaitForInitialMetadata, void()); |
||||
MOCK_METHOD0_T(WritesDone, bool()); |
||||
}; |
||||
|
||||
// TODO: We do not support mocking an async RPC for now.
|
||||
|
||||
template <class R> |
||||
class MockClientAsyncResponseReader |
||||
: public ClientAsyncResponseReaderInterface<R> { |
||||
public: |
||||
MockClientAsyncResponseReader() = default; |
||||
|
||||
MOCK_METHOD1_T(ReadInitialMetadata, void(void*)); |
||||
MOCK_METHOD3_T(Finish, void(R*, Status*, void*)); |
||||
}; |
||||
|
||||
template <class R> |
||||
class MockClientAsyncReader : public ClientAsyncReaderInterface<R> { |
||||
public: |
||||
MockClientAsyncReader() = default; |
||||
|
||||
// ClientAsyncStreamingInterface
|
||||
MOCK_METHOD1_T(ReadInitialMetadata, void(void*)); |
||||
MOCK_METHOD2_T(Finish, void(Status*, void*)); |
||||
|
||||
// AsyncReaderInterface
|
||||
MOCK_METHOD2_T(Read, void(R*, void*)); |
||||
}; |
||||
|
||||
template <class W> |
||||
class MockClientAsyncWriter : public ClientAsyncWriterInterface<W> { |
||||
public: |
||||
MockClientAsyncWriter() = default; |
||||
|
||||
// ClientAsyncStreamingInterface
|
||||
MOCK_METHOD1_T(ReadInitialMetadata, void(void*)); |
||||
MOCK_METHOD2_T(Finish, void(Status*, void*)); |
||||
|
||||
// AsyncWriterInterface
|
||||
MOCK_METHOD2_T(Write, void(const W&, void*)); |
||||
|
||||
// ClientAsyncWriterInterface
|
||||
MOCK_METHOD1_T(WritesDone, void(void*)); |
||||
}; |
||||
|
||||
template <class W, class R> |
||||
class MockClientAsyncReaderWriter |
||||
: public ClientAsyncReaderWriterInterface<W, R> { |
||||
public: |
||||
MockClientAsyncReaderWriter() = default; |
||||
|
||||
// ClientAsyncStreamingInterface
|
||||
MOCK_METHOD1_T(ReadInitialMetadata, void(void*)); |
||||
MOCK_METHOD2_T(Finish, void(Status*, void*)); |
||||
|
||||
// AsyncWriterInterface
|
||||
MOCK_METHOD2_T(Write, void(const W&, void*)); |
||||
|
||||
// AsyncReaderInterface
|
||||
MOCK_METHOD2_T(Read, void(R*, void*)); |
||||
|
||||
// ClientAsyncReaderWriterInterface
|
||||
MOCK_METHOD1_T(WritesDone, void(void*)); |
||||
}; |
||||
|
||||
} // namespace testing
|
||||
} // namespace grpc
|
||||
|
||||
#endif // GRPCXX_TEST_MOCK_STREAM_H
|
@ -0,0 +1,39 @@ |
||||
# Copyright 2017, Google Inc. |
||||
# All rights reserved. |
||||
# |
||||
# Redistribution and use in source and binary forms, with or without |
||||
# modification, are permitted provided that the following conditions are |
||||
# met: |
||||
# |
||||
# * Redistributions of source code must retain the above copyright |
||||
# notice, this list of conditions and the following disclaimer. |
||||
# * Redistributions in binary form must reproduce the above |
||||
# copyright notice, this list of conditions and the following disclaimer |
||||
# in the documentation and/or other materials provided with the |
||||
# distribution. |
||||
# * Neither the name of Google Inc. nor the names of its |
||||
# contributors may be used to endorse or promote products derived from |
||||
# this software without specific prior written permission. |
||||
# |
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
|
||||
licenses(["notice"]) # 3-clause BSD |
||||
|
||||
package(default_visibility = ["//visibility:public"]) |
||||
|
||||
load("//bazel:grpc_build_system.bzl", "grpc_proto_library") |
||||
|
||||
grpc_proto_library( |
||||
name = "health_proto", |
||||
srcs = ["health.proto"], |
||||
) |
@ -0,0 +1,34 @@ |
||||
// Generated by the gRPC C++ plugin. |
||||
// If you make any local change, they will be lost. |
||||
// source: src/proto/grpc/testing/compiler_test.proto |
||||
|
||||
#include "src/proto/grpc/testing/compiler_test.pb.h" |
||||
#include "src/proto/grpc/testing/compiler_test.grpc.pb.h" |
||||
|
||||
#include <grpc++/impl/codegen/async_stream.h> |
||||
#include <grpc++/impl/codegen/sync_stream.h> |
||||
#include <gmock/gmock.h> |
||||
namespace grpc { |
||||
namespace testing { |
||||
|
||||
class MockServiceAStub : public ServiceA::StubInterface { |
||||
public: |
||||
MOCK_METHOD3(MethodA1, ::grpc::Status(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::testing::Response* response)); |
||||
MOCK_METHOD3(AsyncMethodA1Raw, ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>*(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq)); |
||||
MOCK_METHOD2(MethodA2Raw, ::grpc::ClientWriterInterface< ::grpc::testing::Request>*(::grpc::ClientContext* context, ::grpc::testing::Response* response)); |
||||
MOCK_METHOD4(AsyncMethodA2Raw, ::grpc::ClientAsyncWriterInterface< ::grpc::testing::Request>*(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq, void* tag)); |
||||
MOCK_METHOD2(MethodA3Raw, ::grpc::ClientReaderInterface< ::grpc::testing::Response>*(::grpc::ClientContext* context, const ::grpc::testing::Request& request)); |
||||
MOCK_METHOD4(AsyncMethodA3Raw, ::grpc::ClientAsyncReaderInterface< ::grpc::testing::Response>*(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq, void* tag)); |
||||
MOCK_METHOD1(MethodA4Raw, ::grpc::ClientReaderWriterInterface< ::grpc::testing::Request, ::grpc::testing::Response>*(::grpc::ClientContext* context)); |
||||
MOCK_METHOD3(AsyncMethodA4Raw, ::grpc::ClientAsyncReaderWriterInterface<::grpc::testing::Request, ::grpc::testing::Response>*(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag)); |
||||
}; |
||||
|
||||
class MockServiceBStub : public ServiceB::StubInterface { |
||||
public: |
||||
MOCK_METHOD3(MethodB1, ::grpc::Status(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::testing::Response* response)); |
||||
MOCK_METHOD3(AsyncMethodB1Raw, ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>*(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq)); |
||||
}; |
||||
|
||||
} // namespace grpc |
||||
} // namespace testing |
||||
|
Loading…
Reference in new issue