ayushtkn commented on code in PR #4735:
URL: https://github.com/apache/hive/pull/4735#discussion_r1334633511


##########
iceberg/iceberg-handler/src/test/java/org/apache/iceberg/mr/hive/TestHiveIcebergBranchOperation.java:
##########
@@ -197,4 +197,37 @@ public void testDropBranch() throws InterruptedException, 
IOException {
     table.refresh();
     Assert.assertNull(table.refs().get(branchName));
   }
+
+  @Test
+  public void testCreateBranchFromTag() throws IOException, 
InterruptedException {
+    Table table =
+        testTables.createTableWithVersions(shell, "customers", 
HiveIcebergStorageHandlerTestUtils.CUSTOMER_SCHEMA,
+            fileFormat, HiveIcebergStorageHandlerTestUtils.CUSTOMER_RECORDS, 
2);
+    String branchName1 = "test_branch_1";
+    String tagName = "test_tag";
+    String branchName2 = "test_branch_2";
+    String nonExistTag = "test_non_exist_tag";
+    shell.executeStatement(String.format("ALTER TABLE customers CREATE TAG 
%s", tagName));
+
+    // Create a branch based on an existing tag.
+    shell.executeStatement(String.format("ALTER TABLE customers CREATE BRANCH 
%s FOR TAG AS OF %s",
+        branchName1, tagName));
+    table.refresh();
+    SnapshotRef ref = table.refs().get(branchName1);
+    Assert.assertEquals(table.currentSnapshot().snapshotId(), 
ref.snapshotId());
+    Assert.assertNull(ref.minSnapshotsToKeep());
+    Assert.assertNull(ref.maxSnapshotAgeMs());
+    Assert.assertNull(ref.maxRefAgeMs());
+
+    // Create a branch based on a tag which doesn't exist will fail.
+    try {
+      shell.executeStatement(String.format("ALTER TABLE customers CREATE 
BRANCH %s FOR TAG AS OF %s",
+          branchName2, nonExistTag));
+    } catch (Throwable e) {
+      while (e.getCause() != null) {
+        e = e.getCause();
+      }
+      Assert.assertTrue(e.getMessage().contains("does not exist"));
+    }

Review Comment:
   Can we use something like ```  Assertions.assertThatThrownBy```, this while 
loop thing doesn't look very cool



-- 
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: gitbox-unsubscr...@hive.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: gitbox-unsubscr...@hive.apache.org
For additional commands, e-mail: gitbox-h...@hive.apache.org

Reply via email to