@@ -1583,6 +1583,72 @@ TEST_F(GrpcClientTest, CreateDefaultObjectAclPatchFails) {
15831583 EXPECT_THAT (response, StatusIs (StatusCode::kUnavailable ));
15841584}
15851585
1586+ TEST_F (GrpcClientTest, DeleteDefaultObjectAclFailure) {
1587+ auto mock = std::make_shared<testing::MockStorageStub>();
1588+ EXPECT_CALL (*mock, GetBucket)
1589+ .WillOnce ([this ](grpc::ClientContext& context,
1590+ v2::GetBucketRequest const & request) {
1591+ auto metadata = GetMetadata (context);
1592+ EXPECT_THAT (metadata, UnorderedElementsAre (
1593+ Pair (" x-goog-quota-user" , " test-quota-user" ),
1594+ Pair (" x-goog-fieldmask" , " field1,field2" )));
1595+ EXPECT_THAT (request.name (), " projects/_/buckets/test-bucket-name" );
1596+ return PermanentError ();
1597+ });
1598+
1599+ auto client = CreateTestClient (mock);
1600+ auto response = client->DeleteDefaultObjectAcl (
1601+ DeleteDefaultObjectAclRequest (" test-bucket-name" , " test-entity1" )
1602+ .set_multiple_options (Fields (" field1,field2" ),
1603+ QuotaUser (" test-quota-user" ),
1604+ UserProject (" test-user-project" )));
1605+ EXPECT_EQ (response.status (), PermanentError ());
1606+ }
1607+
1608+ TEST_F (GrpcClientTest, DeleteDefaultObjectAclPatchFails) {
1609+ auto mock = std::make_shared<testing::MockStorageStub>();
1610+ EXPECT_CALL (*mock, GetBucket)
1611+ .WillOnce ([&](grpc::ClientContext&, v2::GetBucketRequest const &) {
1612+ v2::Bucket response;
1613+ EXPECT_TRUE (TextFormat::ParseFromString (kBucketProtoText , &response));
1614+ return response;
1615+ });
1616+ EXPECT_CALL (*mock, UpdateBucket)
1617+ .WillOnce ([](grpc::ClientContext&,
1618+ v2::UpdateBucketRequest const & request) {
1619+ EXPECT_EQ (request.bucket ().name (), " projects/_/buckets/test-bucket-id" );
1620+ auto expected = v2::ObjectAccessControl ();
1621+ expected.set_entity (" test-entity4" );
1622+ expected.set_role (" test-role4" );
1623+ EXPECT_THAT (request.bucket ().default_object_acl (),
1624+ ElementsAre (IsProtoEqual (expected)));
1625+ EXPECT_THAT (request.update_mask ().paths (),
1626+ ElementsAre (" default_object_acl" ));
1627+ return Status (StatusCode::kFailedPrecondition , " conflict" );
1628+ });
1629+
1630+ auto client = CreateTestClient (mock);
1631+ auto response = client->DeleteDefaultObjectAcl (
1632+ DeleteDefaultObjectAclRequest (" test-bucket-id" , " test-entity3" ));
1633+ EXPECT_THAT (response, StatusIs (StatusCode::kUnavailable ));
1634+ }
1635+
1636+ TEST_F (GrpcClientTest, DeleteDefaultObjectAclNotFound) {
1637+ auto mock = std::make_shared<testing::MockStorageStub>();
1638+ EXPECT_CALL (*mock, GetBucket)
1639+ .WillOnce ([&](grpc::ClientContext&, v2::GetBucketRequest const &) {
1640+ v2::Bucket response;
1641+ EXPECT_TRUE (TextFormat::ParseFromString (kBucketProtoText , &response));
1642+ return response;
1643+ });
1644+ EXPECT_CALL (*mock, UpdateBucket).Times (0 );
1645+
1646+ auto client = CreateTestClient (mock);
1647+ auto response = client->DeleteDefaultObjectAcl (
1648+ DeleteDefaultObjectAclRequest (" test-bucket-id" , " test-not-found" ));
1649+ EXPECT_THAT (response, StatusIs (StatusCode::kNotFound ));
1650+ }
1651+
15861652TEST_F (GrpcClientTest, GetServiceAccount) {
15871653 auto mock = std::make_shared<testing::MockStorageStub>();
15881654 EXPECT_CALL (*mock, GetServiceAccount)
0 commit comments