ChenSammi commented on code in PR #8875:
URL: https://github.com/apache/ozone/pull/8875#discussion_r2250819063


##########
hadoop-ozone/integration-test-s3/src/test/java/org/apache/hadoop/ozone/s3/awssdk/v1/AbstractS3SDKV1Tests.java:
##########
@@ -926,6 +929,159 @@ public void testQuotaExceeded() throws IOException {
     assertEquals("QuotaExceeded", ase.getErrorCode());
   }
 
+  @Test
+  public void testS3LifecycleConfigurationCreateSuccessfully() {
+    final String bucketName = getBucketName();
+    s3Client.createBucket(bucketName);
+    BucketLifecycleConfiguration configuration = new 
BucketLifecycleConfiguration();
+    List<BucketLifecycleConfiguration.Rule> rules = new ArrayList<>();
+    BucketLifecycleConfiguration.Rule rule1 = new 
BucketLifecycleConfiguration.Rule()
+        .withId("expire-logs-after-365-days")
+        .withPrefix("logs/")
+        .withStatus(BucketLifecycleConfiguration.ENABLED)
+        .withExpirationInDays(365);
+    rules.add(rule1);
+
+    configuration.setRules(rules);
+
+    // Set lifecycle configuration
+    SetBucketLifecycleConfigurationRequest request =
+        new SetBucketLifecycleConfigurationRequest(bucketName, configuration);
+    s3Client.setBucketLifecycleConfiguration(request);
+
+    // Verify the configuration was set
+    BucketLifecycleConfiguration retrievedConfig =
+        s3Client.getBucketLifecycleConfiguration(bucketName);
+    assertEquals(1, retrievedConfig.getRules().size());
+
+    // Verify rule 1
+    BucketLifecycleConfiguration.Rule retrievedRule1 = 
retrievedConfig.getRules().get(0);
+    assertEquals("expire-logs-after-365-days", retrievedRule1.getId());
+    assertEquals("logs/", retrievedRule1.getPrefix());
+    assertEquals(BucketLifecycleConfiguration.ENABLED, 
retrievedRule1.getStatus());
+    assertEquals(365, retrievedRule1.getExpirationInDays());
+  }
+
+  @Test
+  public void testS3LifecycleConfigurationCreationFailed() {
+    final String bucketName = getBucketName();
+    s3Client.createBucket(bucketName);
+
+    // Test 1: Invalid configuration
+    BucketLifecycleConfiguration configuration = new 
BucketLifecycleConfiguration();
+    List<BucketLifecycleConfiguration.Rule> rules = new ArrayList<>();
+
+    BucketLifecycleConfiguration.Rule rule = new 
BucketLifecycleConfiguration.Rule()
+        .withId("invalid")
+        .withStatus(BucketLifecycleConfiguration.ENABLED);
+    rules.add(rule);
+    configuration.setRules(rules);
+    SetBucketLifecycleConfigurationRequest request =
+        new SetBucketLifecycleConfigurationRequest(bucketName, configuration);
+
+    AmazonServiceException ase = assertThrows(AmazonServiceException.class,
+        () -> s3Client.setBucketLifecycleConfiguration(request));
+    assertEquals(ErrorType.Client, ase.getErrorType());
+    assertEquals(400, ase.getStatusCode());

Review Comment:
   Please use the error code defined in java.net.HttpURLConnection. 



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to