Skip to content

Commit 7fd64bc

Browse files
committed
adding tests
1 parent a487594 commit 7fd64bc

1 file changed

Lines changed: 25 additions & 5 deletions

File tree

google/cloud/storage/async/client_test.cc

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ using ::google::cloud::storage_mocks::MockAsyncWriterConnection;
4141
using ::google::cloud::testing_util::IsOk;
4242
using ::google::cloud::testing_util::IsOkAndHolds;
4343
using ::google::cloud::testing_util::IsProtoEqual;
44+
using ::google::cloud::testing_util::StatusIs;
4445
using ::google::protobuf::TextFormat;
4546
using ::testing::ElementsAre;
4647
using ::testing::Optional;
@@ -471,18 +472,37 @@ TEST(AsyncClient, ReadAll2) {
471472
EXPECT_THAT(payload->contents(), ElementsAre("payload"));
472473
}
473474

474-
TEST(AsyncClient, ReadAllFromReader) {
475+
TEST(AsyncClient, ReadAllRequestFailure) {
476+
auto constexpr kRequestText = R"pb(
477+
bucket: "projects/_/buckets/test-bucket"
478+
object: "test-object"
479+
)pb";
475480
auto mock = std::make_shared<MockAsyncConnection>();
476-
EXPECT_CALL(*mock, options)
477-
.WillRepeatedly(
478-
Return(Options{}.set<TestOption<0>>("O0").set<TestOption<1>>("O1")));
481+
EXPECT_CALL(*mock, options).WillRepeatedly(Return(Options{}));
479482

483+
EXPECT_CALL(*mock, ReadObject)
484+
.WillOnce([&](AsyncConnection::ReadObjectParams const& p) {
485+
auto expected = google::storage::v2::ReadObjectRequest{};
486+
EXPECT_TRUE(TextFormat::ParseFromString(kRequestText, &expected));
487+
EXPECT_THAT(p.request, IsProtoEqual(expected));
488+
return make_ready_future(
489+
StatusOr<std::unique_ptr<AsyncReaderConnection>>(
490+
Status(StatusCode::kPermissionDenied, "uh-oh")));
491+
});
492+
493+
auto client = AsyncClient(mock);
494+
auto request = google::storage::v2::ReadObjectRequest{};
495+
EXPECT_TRUE(TextFormat::ParseFromString(kRequestText, &request));
496+
auto payload = client.ReadAll(std::move(request)).get();
497+
EXPECT_THAT(payload, StatusIs(StatusCode::kPermissionDenied, "uh-oh"));
498+
}
499+
500+
TEST(AsyncClient, ReadAllFromReader) {
480501
auto reader_impl = MakeTestReaderConnection({"test-", "payload"});
481502
auto* reader_impl_ptr = reader_impl.get();
482503
auto reader = AsyncReader(std::move(reader_impl));
483504
auto token = storage_internal::MakeAsyncToken(reader_impl_ptr);
484505

485-
auto client = AsyncClient(mock);
486506
auto payload =
487507
AsyncClient::ReadAll(std::move(reader), std::move(token)).get();
488508
ASSERT_STATUS_OK(payload);

0 commit comments

Comments
 (0)