FANNG1 commented on code in PR #5134:
URL: https://github.com/apache/gravitino/pull/5134#discussion_r1804444482


##########
iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/rest/TestIcebergTableOperations.java:
##########
@@ -66,11 +74,163 @@ protected Application configure() {
     return resourceConfig;
   }
 
-  private static final Schema tableSchema =
-      new Schema(NestedField.of(1, false, "foo_string", StringType.get()));
+  @Test
+  void testCreateTable() {
+    verifyCreateTableFail("create_foo1", 404);
 
-  private static final Schema newTableSchema =
-      new Schema(NestedField.of(2, false, "foo_string1", StringType.get()));
+    verifyCreateNamespaceSucc(IcebergRestTestUtil.TEST_NAMESPACE_NAME);
+
+    verifyCreateTableSucc("create_foo1");
+
+    verifyCreateTableFail("create_foo1", 409);
+    verifyCreateTableFail("", 400);
+  }
+
+  @Test
+  void testLoadTable() {
+    verifyLoadTableFail("load_foo1", 404);
+
+    verifyCreateNamespaceSucc(IcebergRestTestUtil.TEST_NAMESPACE_NAME);
+    verifyCreateTableSucc("load_foo1");
+    verifyLoadTableSucc("load_foo1");
+
+    verifyLoadTableFail("load_foo2", 404);
+  }
+
+  @Test
+  void testDropTable() {
+    verifyDropTableFail("drop_foo1", 404);
+    verifyCreateNamespaceSucc(IcebergRestTestUtil.TEST_NAMESPACE_NAME);
+    verifyDropTableFail("drop_foo1", 404);
+
+    verifyCreateTableSucc("drop_foo1");
+    verifyDropTableSucc("drop_foo1");
+    verifyLoadTableFail("drop_foo1", 404);
+  }
+
+  @Test
+  void testUpdateTable() {
+    verifyCreateNamespaceSucc(IcebergRestTestUtil.TEST_NAMESPACE_NAME);
+    verifyCreateTableSucc("update_foo1");
+    TableMetadata metadata = getTableMeta("update_foo1");
+    verifyUpdateSucc("update_foo1", metadata);
+
+    verifyDropTableSucc("update_foo1");
+    verifyUpdateTableFail("update_foo1", 404, metadata);
+
+    verifyDropNamespaceSucc(IcebergRestTestUtil.TEST_NAMESPACE_NAME);
+    verifyUpdateTableFail("update_foo1", 404, metadata);
+  }
+
+  @ParameterizedTest
+  @ValueSource(strings = {"", IcebergRestTestUtil.PREFIX})
+  void testListTables(String prefix) {
+    setUrlPathWithPrefix(prefix);
+    verifyListTableFail(404);
+
+    verifyCreateNamespaceSucc(IcebergRestTestUtil.TEST_NAMESPACE_NAME);
+    verifyCreateTableSucc("list_foo1");
+    verifyCreateTableSucc("list_foo2");
+    verifyListTableSucc(ImmutableSet.of("list_foo1", "list_foo2"));
+  }
+
+  @Test
+  void testTableExits() {
+    verifyTableExistsStatusCode("exists_foo2", 404);
+    verifyCreateNamespaceSucc(IcebergRestTestUtil.TEST_NAMESPACE_NAME);
+    verifyTableExistsStatusCode("exists_foo2", 404);
+
+    verifyCreateTableSucc("exists_foo1");
+    verifyTableExistsStatusCode("exists_foo1", 200);
+    verifyLoadTableSucc("exists_foo1");
+  }
+
+  @ParameterizedTest
+  @ValueSource(strings = {"", IcebergRestTestUtil.PREFIX})
+  void testRenameTable(String prefix) {
+    setUrlPathWithPrefix(prefix);
+    // namespace not exits
+    verifyRenameTableFail("rename_foo1", "rename_foo3", 404);
+
+    verifyCreateNamespaceSucc(IcebergRestTestUtil.TEST_NAMESPACE_NAME);
+    verifyCreateTableSucc("rename_foo1");
+    // rename
+    verifyRenameTableSucc("rename_foo1", "rename_foo2");
+    verifyLoadTableFail("rename_foo1", 404);
+    verifyLoadTableSucc("rename_foo2");
+
+    // source table not exists
+    verifyRenameTableFail("rename_foo1", "rename_foo3", 404);
+
+    // dest table exists
+    verifyCreateTableSucc("rename_foo3");
+    verifyRenameTableFail("rename_foo2", "rename_foo3", 409);
+  }
+
+  @Test
+  void testReportTableMetrics() {
+
+    verifyCreateNamespaceSucc(IcebergRestTestUtil.TEST_NAMESPACE_NAME);
+    verifyCreateTableSucc("metrics_foo1");
+
+    ImmutableCommitMetricsResult commitMetrics = 
ImmutableCommitMetricsResult.builder().build();
+    CommitReport commitReport =
+        ImmutableCommitReport.builder()
+            .tableName("metrics_foo1")
+            .snapshotId(-1)
+            .sequenceNumber(-1)
+            .operation("append")
+            .commitMetrics(commitMetrics)
+            .build();
+    ReportMetricsRequest request = ReportMetricsRequest.of(commitReport);
+    Response response =
+        getReportMetricsClientBuilder("metrics_foo1")
+            .post(Entity.entity(request, MediaType.APPLICATION_JSON_TYPE));
+
+    Assertions.assertEquals(Status.NO_CONTENT.getStatusCode(), 
response.getStatus());
+  }
+
+  @Test
+  void testCreateTableWithCredentialVending() {

Review Comment:
   add credential vending test here



-- 
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]

Reply via email to