@@ -1700,6 +1700,59 @@ TEST_F(GrpcClientTest, UpdateDefaultObjectAclPatchFails) {
17001700 EXPECT_THAT (response, StatusIs (StatusCode::kUnavailable ));
17011701}
17021702
1703+ TEST_F (GrpcClientTest, PatchDefaultObjectAclFailure) {
1704+ auto mock = std::make_shared<testing::MockStorageStub>();
1705+ EXPECT_CALL (*mock, GetBucket)
1706+ .WillOnce ([this ](grpc::ClientContext& context,
1707+ v2::GetBucketRequest const & request) {
1708+ auto metadata = GetMetadata (context);
1709+ EXPECT_THAT (metadata, UnorderedElementsAre (
1710+ Pair (" x-goog-quota-user" , " test-quota-user" ),
1711+ Pair (" x-goog-fieldmask" , " field1,field2" )));
1712+ EXPECT_THAT (request.name (), " projects/_/buckets/test-bucket-name" );
1713+ return PermanentError ();
1714+ });
1715+
1716+ auto client = CreateTestClient (mock);
1717+ auto response = client->PatchDefaultObjectAcl (
1718+ PatchDefaultObjectAclRequest (
1719+ " test-bucket-name" , " test-entity3" ,
1720+ ObjectAccessControlPatchBuilder ().set_role (" updated-role" ))
1721+ .set_multiple_options (Fields (" field1,field2" ),
1722+ QuotaUser (" test-quota-user" ),
1723+ UserProject (" test-user-project" )));
1724+ EXPECT_EQ (response.status (), PermanentError ());
1725+ }
1726+
1727+ TEST_F (GrpcClientTest, PatchDefaultObjectAclPatchFails) {
1728+ auto mock = std::make_shared<testing::MockStorageStub>();
1729+ EXPECT_CALL (*mock, GetBucket)
1730+ .WillOnce ([&](grpc::ClientContext&, v2::GetBucketRequest const &) {
1731+ v2::Bucket response;
1732+ EXPECT_TRUE (TextFormat::ParseFromString (kBucketProtoText , &response));
1733+ return response;
1734+ });
1735+ EXPECT_CALL (*mock, UpdateBucket)
1736+ .WillOnce ([](grpc::ClientContext&,
1737+ v2::UpdateBucketRequest const & request) {
1738+ EXPECT_EQ (request.bucket ().name (), " projects/_/buckets/test-bucket-id" );
1739+ auto expected = v2::ObjectAccessControl ();
1740+ expected.set_entity (" test-entity3" );
1741+ expected.set_role (" updated-role" );
1742+ EXPECT_THAT (request.bucket ().default_object_acl (),
1743+ Contains (IsProtoEqual (expected)));
1744+ EXPECT_THAT (request.update_mask ().paths (),
1745+ ElementsAre (" default_object_acl" ));
1746+ return Status (StatusCode::kFailedPrecondition , " conflict" );
1747+ });
1748+
1749+ auto client = CreateTestClient (mock);
1750+ auto response = client->PatchDefaultObjectAcl (PatchDefaultObjectAclRequest (
1751+ " test-bucket-id" , " test-entity3" ,
1752+ ObjectAccessControlPatchBuilder ().set_role (" updated-role" )));
1753+ EXPECT_THAT (response, StatusIs (StatusCode::kUnavailable ));
1754+ }
1755+
17031756TEST_F (GrpcClientTest, GetServiceAccount) {
17041757 auto mock = std::make_shared<testing::MockStorageStub>();
17051758 EXPECT_CALL (*mock, GetServiceAccount)
0 commit comments