126126import org .apache .http .impl .client .HttpClients ;
127127import org .apache .http .impl .conn .PoolingHttpClientConnectionManager ;
128128import org .junit .AfterClass ;
129+ import org .junit .Before ;
129130import org .junit .BeforeClass ;
130131import org .junit .Test ;
131132
@@ -192,6 +193,23 @@ public static void beforeClass() throws IOException {
192193 prepareKmsKeys ();
193194 }
194195
196+ @ Before
197+ public void beforeEach () {
198+ Bucket remoteBucket =
199+ storage .get (
200+ BUCKET ,
201+ Storage .BucketGetOption .fields (BucketField .ID , BucketField .BILLING ),
202+ Storage .BucketGetOption .userProject (storage .getOptions ().getProjectId ()));
203+ // Disable requester pays in case a test fails to clean up.
204+ if (remoteBucket .requesterPays () != null && remoteBucket .requesterPays () == true ) {
205+ remoteBucket
206+ .toBuilder ()
207+ .setRequesterPays (false )
208+ .build ()
209+ .update (Storage .BucketTargetOption .userProject (storage .getOptions ().getProjectId ()));
210+ }
211+ }
212+
195213 @ AfterClass
196214 public static void afterClass () throws ExecutionException , InterruptedException {
197215 if (storage != null ) {
@@ -867,8 +885,9 @@ public void testListBlobRequesterPays() throws InterruptedException {
867885 assertNotNull (storage .create (blob1 ));
868886
869887 // Test listing a Requester Pays bucket.
870- Bucket remoteBucket = storage .get (BUCKET , Storage .BucketGetOption .fields (BucketField .ID ));
871- assertNull (remoteBucket .requesterPays ());
888+ Bucket remoteBucket =
889+ storage .get (BUCKET , Storage .BucketGetOption .fields (BucketField .ID , BucketField .BILLING ));
890+ assertFalse (remoteBucket .requesterPays ());
872891 remoteBucket = remoteBucket .toBuilder ().setRequesterPays (true ).build ();
873892 Bucket updatedBucket = storage .update (remoteBucket );
874893 assertTrue (updatedBucket .requesterPays ());
@@ -2138,7 +2157,8 @@ public void testBucketAcl() {
21382157
21392158 private void testBucketAclRequesterPays (boolean requesterPays ) {
21402159 if (requesterPays ) {
2141- Bucket remoteBucket = storage .get (BUCKET , Storage .BucketGetOption .fields (BucketField .ID ));
2160+ Bucket remoteBucket =
2161+ storage .get (BUCKET , Storage .BucketGetOption .fields (BucketField .ID , BucketField .BILLING ));
21422162 assertNull (remoteBucket .requesterPays ());
21432163 remoteBucket = remoteBucket .toBuilder ().setRequesterPays (true ).build ();
21442164 Bucket updatedBucket = storage .update (remoteBucket );
@@ -2164,6 +2184,18 @@ private void testBucketAclRequesterPays(boolean requesterPays) {
21642184 assertTrue (acls .contains (updatedAcl ));
21652185 assertTrue (storage .deleteAcl (BUCKET , User .ofAllAuthenticatedUsers (), bucketOptions ));
21662186 assertNull (storage .getAcl (BUCKET , User .ofAllAuthenticatedUsers (), bucketOptions ));
2187+ if (requesterPays ) {
2188+ Bucket remoteBucket =
2189+ storage .get (
2190+ BUCKET ,
2191+ Storage .BucketGetOption .fields (BucketField .ID , BucketField .BILLING ),
2192+ Storage .BucketGetOption .userProject (projectId ));
2193+ assertTrue (remoteBucket .requesterPays ());
2194+ remoteBucket = remoteBucket .toBuilder ().setRequesterPays (false ).build ();
2195+ Bucket updatedBucket =
2196+ storage .update (remoteBucket , Storage .BucketTargetOption .userProject (projectId ));
2197+ assertFalse (updatedBucket .requesterPays ());
2198+ }
21672199 }
21682200
21692201 @ Test
@@ -2347,8 +2379,9 @@ public void testReadCompressedBlob() throws IOException {
23472379
23482380 @ Test
23492381 public void testBucketPolicyV1RequesterPays () {
2350- Bucket remoteBucket = storage .get (BUCKET , Storage .BucketGetOption .fields (BucketField .ID ));
2351- assertNull (remoteBucket .requesterPays ());
2382+ Bucket remoteBucket =
2383+ storage .get (BUCKET , Storage .BucketGetOption .fields (BucketField .ID , BucketField .BILLING ));
2384+ assertFalse (remoteBucket .requesterPays ());
23522385 remoteBucket = remoteBucket .toBuilder ().setRequesterPays (true ).build ();
23532386 Bucket updatedBucket = storage .update (remoteBucket );
23542387 assertTrue (updatedBucket .requesterPays ());
@@ -2407,6 +2440,9 @@ public void testBucketPolicyV1RequesterPays() {
24072440 BUCKET ,
24082441 ImmutableList .of ("storage.buckets.getIamPolicy" , "storage.buckets.setIamPolicy" ),
24092442 bucketOptions ));
2443+ remoteBucket = remoteBucket .toBuilder ().setRequesterPays (false ).build ();
2444+ updatedBucket = storage .update (remoteBucket , Storage .BucketTargetOption .userProject (projectId ));
2445+ assertFalse (updatedBucket .requesterPays ());
24102446 }
24112447
24122448 @ Test
@@ -2624,7 +2660,8 @@ public void testBucketPolicyV3() {
26242660
26252661 @ Test
26262662 public void testUpdateBucketLabel () {
2627- Bucket remoteBucket = storage .get (BUCKET , Storage .BucketGetOption .fields (BucketField .ID ));
2663+ Bucket remoteBucket =
2664+ storage .get (BUCKET , Storage .BucketGetOption .fields (BucketField .ID , BucketField .BILLING ));
26282665 assertNull (remoteBucket .getLabels ());
26292666 remoteBucket = remoteBucket .toBuilder ().setLabels (BUCKET_LABELS ).build ();
26302667 Bucket updatedBucket = storage .update (remoteBucket );
@@ -2635,8 +2672,9 @@ public void testUpdateBucketLabel() {
26352672
26362673 @ Test
26372674 public void testUpdateBucketRequesterPays () {
2638- Bucket remoteBucket = storage .get (BUCKET , Storage .BucketGetOption .fields (BucketField .ID ));
2639- assertNull (remoteBucket .requesterPays ());
2675+ Bucket remoteBucket =
2676+ storage .get (BUCKET , Storage .BucketGetOption .fields (BucketField .ID , BucketField .BILLING ));
2677+ assertFalse (remoteBucket .requesterPays ());
26402678 remoteBucket = remoteBucket .toBuilder ().setRequesterPays (true ).build ();
26412679 Bucket updatedBucket = storage .update (remoteBucket );
26422680 assertTrue (updatedBucket .requesterPays ());
@@ -2646,8 +2684,12 @@ public void testUpdateBucketRequesterPays() {
26462684 String blobName = "test-create-empty-blob-requester-pays" ;
26472685 Blob remoteBlob = updatedBucket .create (blobName , BLOB_BYTE_CONTENT , option );
26482686 assertNotNull (remoteBlob );
2649- byte [] readBytes = storage .readAllBytes (BUCKET , blobName );
2687+ byte [] readBytes =
2688+ storage .readAllBytes (BUCKET , blobName , Storage .BlobSourceOption .userProject (projectId ));
26502689 assertArrayEquals (BLOB_BYTE_CONTENT , readBytes );
2690+ remoteBucket = remoteBucket .toBuilder ().setRequesterPays (false ).build ();
2691+ updatedBucket = storage .update (remoteBucket , Storage .BucketTargetOption .userProject (projectId ));
2692+ assertFalse (updatedBucket .requesterPays ());
26512693 }
26522694
26532695 @ Test
@@ -2786,6 +2828,12 @@ private void retentionPolicyLockRequesterPays(boolean requesterPays)
27862828 assertTrue (remoteBucket .retentionPolicyIsLocked ());
27872829 assertNotNull (remoteBucket .getRetentionEffectiveTime ());
27882830 } finally {
2831+ if (requesterPays ) {
2832+ bucketInfo = bucketInfo .toBuilder ().setRequesterPays (false ).build ();
2833+ Bucket updateBucket =
2834+ storage .update (bucketInfo , Storage .BucketTargetOption .userProject (projectId ));
2835+ assertFalse (updateBucket .requesterPays ());
2836+ }
27892837 RemoteStorageHelper .forceDelete (storage , bucketName , 5 , TimeUnit .SECONDS );
27902838 }
27912839 }
0 commit comments