xref: /aosp_15_r20/external/grpc-grpc/include/grpcpp/test/mock_stream.h (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1*cc02d7e2SAndroid Build Coastguard Worker //
2*cc02d7e2SAndroid Build Coastguard Worker //
3*cc02d7e2SAndroid Build Coastguard Worker // Copyright 2017 gRPC authors.
4*cc02d7e2SAndroid Build Coastguard Worker //
5*cc02d7e2SAndroid Build Coastguard Worker // Licensed under the Apache License, Version 2.0 (the "License");
6*cc02d7e2SAndroid Build Coastguard Worker // you may not use this file except in compliance with the License.
7*cc02d7e2SAndroid Build Coastguard Worker // You may obtain a copy of the License at
8*cc02d7e2SAndroid Build Coastguard Worker //
9*cc02d7e2SAndroid Build Coastguard Worker //     http://www.apache.org/licenses/LICENSE-2.0
10*cc02d7e2SAndroid Build Coastguard Worker //
11*cc02d7e2SAndroid Build Coastguard Worker // Unless required by applicable law or agreed to in writing, software
12*cc02d7e2SAndroid Build Coastguard Worker // distributed under the License is distributed on an "AS IS" BASIS,
13*cc02d7e2SAndroid Build Coastguard Worker // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*cc02d7e2SAndroid Build Coastguard Worker // See the License for the specific language governing permissions and
15*cc02d7e2SAndroid Build Coastguard Worker // limitations under the License.
16*cc02d7e2SAndroid Build Coastguard Worker //
17*cc02d7e2SAndroid Build Coastguard Worker //
18*cc02d7e2SAndroid Build Coastguard Worker 
19*cc02d7e2SAndroid Build Coastguard Worker #ifndef GRPCPP_TEST_MOCK_STREAM_H
20*cc02d7e2SAndroid Build Coastguard Worker #define GRPCPP_TEST_MOCK_STREAM_H
21*cc02d7e2SAndroid Build Coastguard Worker 
22*cc02d7e2SAndroid Build Coastguard Worker #include <stdint.h>
23*cc02d7e2SAndroid Build Coastguard Worker 
24*cc02d7e2SAndroid Build Coastguard Worker #include <gmock/gmock.h>
25*cc02d7e2SAndroid Build Coastguard Worker 
26*cc02d7e2SAndroid Build Coastguard Worker #include <grpcpp/impl/call.h>
27*cc02d7e2SAndroid Build Coastguard Worker #include <grpcpp/support/async_stream.h>
28*cc02d7e2SAndroid Build Coastguard Worker #include <grpcpp/support/async_unary_call.h>
29*cc02d7e2SAndroid Build Coastguard Worker #include <grpcpp/support/sync_stream.h>
30*cc02d7e2SAndroid Build Coastguard Worker 
31*cc02d7e2SAndroid Build Coastguard Worker namespace grpc {
32*cc02d7e2SAndroid Build Coastguard Worker namespace testing {
33*cc02d7e2SAndroid Build Coastguard Worker 
34*cc02d7e2SAndroid Build Coastguard Worker template <class R>
35*cc02d7e2SAndroid Build Coastguard Worker class MockClientReader : public grpc::ClientReaderInterface<R> {
36*cc02d7e2SAndroid Build Coastguard Worker  public:
37*cc02d7e2SAndroid Build Coastguard Worker   MockClientReader() = default;
38*cc02d7e2SAndroid Build Coastguard Worker 
39*cc02d7e2SAndroid Build Coastguard Worker   /// ClientStreamingInterface
40*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD0_T(Finish, Status());
41*cc02d7e2SAndroid Build Coastguard Worker 
42*cc02d7e2SAndroid Build Coastguard Worker   /// ReaderInterface
43*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD1_T(NextMessageSize, bool(uint32_t*));
44*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD1_T(Read, bool(R*));
45*cc02d7e2SAndroid Build Coastguard Worker 
46*cc02d7e2SAndroid Build Coastguard Worker   /// ClientReaderInterface
47*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD0_T(WaitForInitialMetadata, void());
48*cc02d7e2SAndroid Build Coastguard Worker };
49*cc02d7e2SAndroid Build Coastguard Worker 
50*cc02d7e2SAndroid Build Coastguard Worker template <class W>
51*cc02d7e2SAndroid Build Coastguard Worker class MockClientWriter : public grpc::ClientWriterInterface<W> {
52*cc02d7e2SAndroid Build Coastguard Worker  public:
53*cc02d7e2SAndroid Build Coastguard Worker   MockClientWriter() = default;
54*cc02d7e2SAndroid Build Coastguard Worker 
55*cc02d7e2SAndroid Build Coastguard Worker   /// ClientStreamingInterface
56*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD0_T(Finish, Status());
57*cc02d7e2SAndroid Build Coastguard Worker 
58*cc02d7e2SAndroid Build Coastguard Worker   /// WriterInterface
59*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD2_T(Write, bool(const W&, const WriteOptions));
60*cc02d7e2SAndroid Build Coastguard Worker 
61*cc02d7e2SAndroid Build Coastguard Worker   /// ClientWriterInterface
62*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD0_T(WritesDone, bool());
63*cc02d7e2SAndroid Build Coastguard Worker };
64*cc02d7e2SAndroid Build Coastguard Worker 
65*cc02d7e2SAndroid Build Coastguard Worker template <class W, class R>
66*cc02d7e2SAndroid Build Coastguard Worker class MockClientReaderWriter : public grpc::ClientReaderWriterInterface<W, R> {
67*cc02d7e2SAndroid Build Coastguard Worker  public:
68*cc02d7e2SAndroid Build Coastguard Worker   MockClientReaderWriter() = default;
69*cc02d7e2SAndroid Build Coastguard Worker 
70*cc02d7e2SAndroid Build Coastguard Worker   /// ClientStreamingInterface
71*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD0_T(Finish, Status());
72*cc02d7e2SAndroid Build Coastguard Worker 
73*cc02d7e2SAndroid Build Coastguard Worker   /// ReaderInterface
74*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD1_T(NextMessageSize, bool(uint32_t*));
75*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD1_T(Read, bool(R*));
76*cc02d7e2SAndroid Build Coastguard Worker 
77*cc02d7e2SAndroid Build Coastguard Worker   /// WriterInterface
78*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD2_T(Write, bool(const W&, const WriteOptions));
79*cc02d7e2SAndroid Build Coastguard Worker 
80*cc02d7e2SAndroid Build Coastguard Worker   /// ClientReaderWriterInterface
81*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD0_T(WaitForInitialMetadata, void());
82*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD0_T(WritesDone, bool());
83*cc02d7e2SAndroid Build Coastguard Worker };
84*cc02d7e2SAndroid Build Coastguard Worker 
85*cc02d7e2SAndroid Build Coastguard Worker /// TODO: We do not support mocking an async RPC for now.
86*cc02d7e2SAndroid Build Coastguard Worker 
87*cc02d7e2SAndroid Build Coastguard Worker template <class R>
88*cc02d7e2SAndroid Build Coastguard Worker class MockClientAsyncResponseReader
89*cc02d7e2SAndroid Build Coastguard Worker     : public grpc::ClientAsyncResponseReaderInterface<R> {
90*cc02d7e2SAndroid Build Coastguard Worker  public:
91*cc02d7e2SAndroid Build Coastguard Worker   MockClientAsyncResponseReader() = default;
92*cc02d7e2SAndroid Build Coastguard Worker 
93*cc02d7e2SAndroid Build Coastguard Worker   /// ClientAsyncResponseReaderInterface
94*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD0_T(StartCall, void());
95*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD1_T(ReadInitialMetadata, void(void*));
96*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD3_T(Finish, void(R*, Status*, void*));
97*cc02d7e2SAndroid Build Coastguard Worker };
98*cc02d7e2SAndroid Build Coastguard Worker 
99*cc02d7e2SAndroid Build Coastguard Worker template <class R>
100*cc02d7e2SAndroid Build Coastguard Worker class MockClientAsyncReader : public ClientAsyncReaderInterface<R> {
101*cc02d7e2SAndroid Build Coastguard Worker  public:
102*cc02d7e2SAndroid Build Coastguard Worker   MockClientAsyncReader() = default;
103*cc02d7e2SAndroid Build Coastguard Worker 
104*cc02d7e2SAndroid Build Coastguard Worker   /// ClientAsyncStreamingInterface
105*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD1_T(StartCall, void(void*));
106*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD1_T(ReadInitialMetadata, void(void*));
107*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD2_T(Finish, void(Status*, void*));
108*cc02d7e2SAndroid Build Coastguard Worker 
109*cc02d7e2SAndroid Build Coastguard Worker   /// AsyncReaderInterface
110*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD2_T(Read, void(R*, void*));
111*cc02d7e2SAndroid Build Coastguard Worker };
112*cc02d7e2SAndroid Build Coastguard Worker 
113*cc02d7e2SAndroid Build Coastguard Worker template <class W>
114*cc02d7e2SAndroid Build Coastguard Worker class MockClientAsyncWriter : public grpc::ClientAsyncWriterInterface<W> {
115*cc02d7e2SAndroid Build Coastguard Worker  public:
116*cc02d7e2SAndroid Build Coastguard Worker   MockClientAsyncWriter() = default;
117*cc02d7e2SAndroid Build Coastguard Worker 
118*cc02d7e2SAndroid Build Coastguard Worker   /// ClientAsyncStreamingInterface
119*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD1_T(StartCall, void(void*));
120*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD1_T(ReadInitialMetadata, void(void*));
121*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD2_T(Finish, void(Status*, void*));
122*cc02d7e2SAndroid Build Coastguard Worker 
123*cc02d7e2SAndroid Build Coastguard Worker   /// AsyncWriterInterface
124*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD2_T(Write, void(const W&, void*));
125*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD3_T(Write, void(const W&, grpc::WriteOptions, void*));
126*cc02d7e2SAndroid Build Coastguard Worker 
127*cc02d7e2SAndroid Build Coastguard Worker   /// ClientAsyncWriterInterface
128*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD1_T(WritesDone, void(void*));
129*cc02d7e2SAndroid Build Coastguard Worker };
130*cc02d7e2SAndroid Build Coastguard Worker 
131*cc02d7e2SAndroid Build Coastguard Worker template <class W, class R>
132*cc02d7e2SAndroid Build Coastguard Worker class MockClientAsyncReaderWriter
133*cc02d7e2SAndroid Build Coastguard Worker     : public ClientAsyncReaderWriterInterface<W, R> {
134*cc02d7e2SAndroid Build Coastguard Worker  public:
135*cc02d7e2SAndroid Build Coastguard Worker   MockClientAsyncReaderWriter() = default;
136*cc02d7e2SAndroid Build Coastguard Worker 
137*cc02d7e2SAndroid Build Coastguard Worker   /// ClientAsyncStreamingInterface
138*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD1_T(StartCall, void(void*));
139*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD1_T(ReadInitialMetadata, void(void*));
140*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD2_T(Finish, void(Status*, void*));
141*cc02d7e2SAndroid Build Coastguard Worker 
142*cc02d7e2SAndroid Build Coastguard Worker   /// AsyncWriterInterface
143*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD2_T(Write, void(const W&, void*));
144*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD3_T(Write, void(const W&, grpc::WriteOptions, void*));
145*cc02d7e2SAndroid Build Coastguard Worker 
146*cc02d7e2SAndroid Build Coastguard Worker   /// AsyncReaderInterface
147*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD2_T(Read, void(R*, void*));
148*cc02d7e2SAndroid Build Coastguard Worker 
149*cc02d7e2SAndroid Build Coastguard Worker   /// ClientAsyncReaderWriterInterface
150*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD1_T(WritesDone, void(void*));
151*cc02d7e2SAndroid Build Coastguard Worker };
152*cc02d7e2SAndroid Build Coastguard Worker 
153*cc02d7e2SAndroid Build Coastguard Worker template <class R>
154*cc02d7e2SAndroid Build Coastguard Worker class MockServerReader : public grpc::ServerReaderInterface<R> {
155*cc02d7e2SAndroid Build Coastguard Worker  public:
156*cc02d7e2SAndroid Build Coastguard Worker   MockServerReader() = default;
157*cc02d7e2SAndroid Build Coastguard Worker 
158*cc02d7e2SAndroid Build Coastguard Worker   /// ServerStreamingInterface
159*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD0_T(SendInitialMetadata, void());
160*cc02d7e2SAndroid Build Coastguard Worker 
161*cc02d7e2SAndroid Build Coastguard Worker   /// ReaderInterface
162*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD1_T(NextMessageSize, bool(uint32_t*));
163*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD1_T(Read, bool(R*));
164*cc02d7e2SAndroid Build Coastguard Worker };
165*cc02d7e2SAndroid Build Coastguard Worker 
166*cc02d7e2SAndroid Build Coastguard Worker template <class W>
167*cc02d7e2SAndroid Build Coastguard Worker class MockServerWriter : public grpc::ServerWriterInterface<W> {
168*cc02d7e2SAndroid Build Coastguard Worker  public:
169*cc02d7e2SAndroid Build Coastguard Worker   MockServerWriter() = default;
170*cc02d7e2SAndroid Build Coastguard Worker 
171*cc02d7e2SAndroid Build Coastguard Worker   /// ServerStreamingInterface
172*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD0_T(SendInitialMetadata, void());
173*cc02d7e2SAndroid Build Coastguard Worker 
174*cc02d7e2SAndroid Build Coastguard Worker   /// WriterInterface
175*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD2_T(Write, bool(const W&, const WriteOptions));
176*cc02d7e2SAndroid Build Coastguard Worker };
177*cc02d7e2SAndroid Build Coastguard Worker 
178*cc02d7e2SAndroid Build Coastguard Worker template <class W, class R>
179*cc02d7e2SAndroid Build Coastguard Worker class MockServerReaderWriter : public grpc::ServerReaderWriterInterface<W, R> {
180*cc02d7e2SAndroid Build Coastguard Worker  public:
181*cc02d7e2SAndroid Build Coastguard Worker   MockServerReaderWriter() = default;
182*cc02d7e2SAndroid Build Coastguard Worker 
183*cc02d7e2SAndroid Build Coastguard Worker   /// ServerStreamingInterface
184*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD0_T(SendInitialMetadata, void());
185*cc02d7e2SAndroid Build Coastguard Worker 
186*cc02d7e2SAndroid Build Coastguard Worker   /// ReaderInterface
187*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD1_T(NextMessageSize, bool(uint32_t*));
188*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD1_T(Read, bool(R*));
189*cc02d7e2SAndroid Build Coastguard Worker 
190*cc02d7e2SAndroid Build Coastguard Worker   /// WriterInterface
191*cc02d7e2SAndroid Build Coastguard Worker   MOCK_METHOD2_T(Write, bool(const W&, const WriteOptions));
192*cc02d7e2SAndroid Build Coastguard Worker };
193*cc02d7e2SAndroid Build Coastguard Worker 
194*cc02d7e2SAndroid Build Coastguard Worker }  // namespace testing
195*cc02d7e2SAndroid Build Coastguard Worker }  // namespace grpc
196*cc02d7e2SAndroid Build Coastguard Worker 
197*cc02d7e2SAndroid Build Coastguard Worker #endif  // GRPCPP_TEST_MOCK_STREAM_H
198