1616#include " google/cloud/internal/api_client_header.h"
1717#include " google/cloud/testing_util/status_matchers.h"
1818#include " google/cloud/testing_util/validate_metadata.h"
19+ #include " absl/memory/memory.h"
20+ #include " generator/integration_tests/golden/mocks/mock_golden_kitchen_sink_stub.h"
1921#include < gmock/gmock.h>
2022#include < memory>
2123
@@ -25,71 +27,21 @@ namespace golden_internal {
2527inline namespace GOOGLE_CLOUD_CPP_GENERATED_NS {
2628namespace {
2729
30+ using ::google::cloud::golden_internal::MockGoldenKitchenSinkStub;
2831using ::google::cloud::testing_util::IsContextMDValid;
2932using ::google::cloud::testing_util::IsOk;
33+ using ::google::test::admin::database::v1::TailLogEntriesRequest;
34+ using ::google::test::admin::database::v1::TailLogEntriesResponse;
3035using ::testing::Not;
3136using ::testing::Return;
3237
33- class MockGoldenKitchenSinkStub
34- : public google::cloud::golden_internal::GoldenKitchenSinkStub {
35- public:
36- ~MockGoldenKitchenSinkStub () override = default ;
37- MOCK_METHOD (
38- StatusOr<
39- ::google::test::admin::database::v1::GenerateAccessTokenResponse>,
40- GenerateAccessToken,
41- (grpc::ClientContext & context,
42- ::google::test::admin::database::v1::GenerateAccessTokenRequest const &
43- request),
44- (override ));
45- MOCK_METHOD (
46- StatusOr<::google::test::admin::database::v1::GenerateIdTokenResponse>,
47- GenerateIdToken,
48- (grpc::ClientContext & context,
49- ::google::test::admin::database::v1::GenerateIdTokenRequest const &
50- request),
51- (override ));
52- MOCK_METHOD (
53- StatusOr<::google::test::admin::database::v1::WriteLogEntriesResponse>,
54- WriteLogEntries,
55- (grpc::ClientContext & context,
56- ::google::test::admin::database::v1::WriteLogEntriesRequest const &
57- request),
58- (override ));
59- MOCK_METHOD (
60- StatusOr<::google::test::admin::database::v1::ListLogsResponse>, ListLogs,
61- (grpc::ClientContext & context,
62- ::google::test::admin::database::v1::ListLogsRequest const & request),
63- (override ));
64- MOCK_METHOD (
65- (std::unique_ptr<internal::StreamingReadRpc<
66- ::google::test::admin::database::v1::TailLogEntriesResponse>>),
67- TailLogEntries,
68- (std::unique_ptr<grpc::ClientContext> context,
69- ::google::test::admin::database::v1::TailLogEntriesRequest const &
70- request),
71- (override ));
72- MOCK_METHOD (
73- StatusOr<
74- ::google::test::admin::database::v1::ListServiceAccountKeysResponse>,
75- ListServiceAccountKeys,
76- (grpc::ClientContext & context,
77- ::google::test::admin::database::v1::ListServiceAccountKeysRequest const &
78- request),
79- (override ));
80- };
81-
8238class MetadataDecoratorTest : public ::testing::Test {
8339 protected:
8440 void SetUp () override {
8541 expected_api_client_header_ = google::cloud::internal::ApiClientHeader ();
8642 mock_ = std::make_shared<MockGoldenKitchenSinkStub>();
8743 }
8844
89- static grpc::Status GrpcTransientError () {
90- return grpc::Status (grpc::StatusCode::UNAVAILABLE, " try-again" );
91- }
92-
9345 static Status TransientError () {
9446 return Status (StatusCode::kUnavailable , " try-again" );
9547 }
@@ -178,35 +130,31 @@ TEST_F(MetadataDecoratorTest, ListLogs) {
178130}
179131
180132class MockTailLogEntriesStreamingReadRpc
181- : public internal::StreamingReadRpc<
182- google::test::admin::database::v1::TailLogEntriesResponse> {
133+ : public internal::StreamingReadRpc<TailLogEntriesResponse> {
183134 public:
184135 MOCK_METHOD (void , Cancel, (), (override ));
185- MOCK_METHOD (
186- (absl::variant<
187- Status, google::test::admin::database::v1::TailLogEntriesResponse>),
188- Read, (), (override ));
136+ MOCK_METHOD ((absl::variant<Status, TailLogEntriesResponse>), Read, (),
137+ (override ));
189138};
190139
191140TEST_F (MetadataDecoratorTest, TailLogEntries) {
192- auto mock_response = new MockTailLogEntriesStreamingReadRpc;
193- EXPECT_CALL (*mock_response, Read)
194- .WillOnce (Return (Status (StatusCode::kPermissionDenied , " uh-oh" )));
195141 EXPECT_CALL (*mock_, TailLogEntries)
196- .WillOnce ([mock_response, this ](
197- std::unique_ptr<grpc::ClientContext> context,
198- google::test::admin::database::v1::
199- TailLogEntriesRequest const &) {
142+ .WillOnce ([this ](std::unique_ptr<grpc::ClientContext> context,
143+ TailLogEntriesRequest const &) {
144+ auto mock_response =
145+ absl::make_unique<MockTailLogEntriesStreamingReadRpc>();
146+ EXPECT_CALL (*mock_response, Read)
147+ .WillOnce (Return (Status (StatusCode::kPermissionDenied , " uh-oh" )));
200148 EXPECT_STATUS_OK (IsContextMDValid (
201149 *context,
202150 " google.test.admin.database.v1.GoldenKitchenSink.TailLogEntries" ,
203151 expected_api_client_header_));
204- return std::unique_ptr<internal::StreamingReadRpc<
205- ::google::test::admin::database::v1:: TailLogEntriesResponse>>(
206- mock_response);
152+ return std::unique_ptr<
153+ internal::StreamingReadRpc< TailLogEntriesResponse>>(
154+ std::move ( mock_response) );
207155 });
208156 GoldenKitchenSinkMetadata stub (mock_);
209- google::test::admin::database::v1:: TailLogEntriesRequest request;
157+ TailLogEntriesRequest request;
210158 auto response =
211159 stub.TailLogEntries (absl::make_unique<grpc::ClientContext>(), request);
212160 EXPECT_THAT (absl::get<Status>(response->Read ()), Not (IsOk ()));
0 commit comments