From 0c55e2052ac1118455dcd93fda2ce36683c0e5b6 Mon Sep 17 00:00:00 2001 From: VigneshSK17 Date: Mon, 13 Jan 2025 22:19:47 -0500 Subject: [PATCH] Fully updated to refactored Command handler --- .../gravitino/cli/CatalogCommandHandler.java | 7 ++--- .../gravitino/cli/MetalakeCommandHandler.java | 7 ++--- .../gravitino/cli/TestCatalogCommands.java | 26 ++++++++++++++++--- .../gravitino/cli/TestMetalakeCommands.java | 19 +++++++++++--- 4 files changed, 41 insertions(+), 18 deletions(-) diff --git a/clients/cli/src/main/java/org/apache/gravitino/cli/CatalogCommandHandler.java b/clients/cli/src/main/java/org/apache/gravitino/cli/CatalogCommandHandler.java index 8e238406854..75c0f03ccb3 100644 --- a/clients/cli/src/main/java/org/apache/gravitino/cli/CatalogCommandHandler.java +++ b/clients/cli/src/main/java/org/apache/gravitino/cli/CatalogCommandHandler.java @@ -186,14 +186,11 @@ private void handlePropertiesCommand() { /** Handles the "UPDATE" command. */ private void handleUpdateCommand() { - if (line.hasOption(GravitinoOptions.ENABLE) && line.hasOption(GravitinoOptions.DISABLE)) { - System.err.println(ErrorMessages.INVALID_ENABLE_DISABLE); - Main.exit(-1); - } if (line.hasOption(GravitinoOptions.ENABLE)) { boolean enableMetalake = line.hasOption(GravitinoOptions.ALL); + boolean disable = line.hasOption(GravitinoOptions.DISABLE); gravitinoCommandLine - .newCatalogEnable(url, ignore, metalake, catalog, enableMetalake) + .newCatalogEnable(url, ignore, metalake, catalog, disable, enableMetalake) .validate() .handle(); } diff --git a/clients/cli/src/main/java/org/apache/gravitino/cli/MetalakeCommandHandler.java b/clients/cli/src/main/java/org/apache/gravitino/cli/MetalakeCommandHandler.java index 993116f19f5..c7af1e6ab95 100644 --- a/clients/cli/src/main/java/org/apache/gravitino/cli/MetalakeCommandHandler.java +++ b/clients/cli/src/main/java/org/apache/gravitino/cli/MetalakeCommandHandler.java @@ -167,14 +167,11 @@ private void handlePropertiesCommand() { /** Handles the "UPDATE" command. */ private void handleUpdateCommand() { - if (line.hasOption(GravitinoOptions.ENABLE) && line.hasOption(GravitinoOptions.DISABLE)) { - System.err.println(ErrorMessages.INVALID_ENABLE_DISABLE); - Main.exit(-1); - } if (line.hasOption(GravitinoOptions.ENABLE)) { boolean enableAllCatalogs = line.hasOption(GravitinoOptions.ALL); + boolean disable = line.hasOption(GravitinoOptions.DISABLE); gravitinoCommandLine - .newMetalakeEnable(url, ignore, metalake, enableAllCatalogs) + .newMetalakeEnable(url, ignore, metalake, disable, enableAllCatalogs) .validate() .handle(); } diff --git a/clients/cli/src/test/java/org/apache/gravitino/cli/TestCatalogCommands.java b/clients/cli/src/test/java/org/apache/gravitino/cli/TestCatalogCommands.java index 040f5835eac..b2e745a7967 100644 --- a/clients/cli/src/test/java/org/apache/gravitino/cli/TestCatalogCommands.java +++ b/clients/cli/src/test/java/org/apache/gravitino/cli/TestCatalogCommands.java @@ -513,12 +513,30 @@ void testDisableCatalogCommand() { @SuppressWarnings("DefaultCharset") void testCatalogWithDisableAndEnableOptions() { Main.useExit = false; - CatalogEnable mockCatalogEnable = + when(mockCommandLine.hasOption(GravitinoOptions.METALAKE)).thenReturn(true); + when(mockCommandLine.getOptionValue(GravitinoOptions.METALAKE)).thenReturn("metalake_demo"); + when(mockCommandLine.hasOption(GravitinoOptions.NAME)).thenReturn(true); + when(mockCommandLine.getOptionValue(GravitinoOptions.NAME)).thenReturn("catalog"); + when(mockCommandLine.hasOption(GravitinoOptions.DISABLE)).thenReturn(true); + when(mockCommandLine.hasOption(GravitinoOptions.ENABLE)).thenReturn(true); + + GravitinoCommandLine commandLine = spy( - new CatalogEnable( - GravitinoCommandLine.DEFAULT_URL, false, "metalake_demo", "catalog", true, false)); + new GravitinoCommandLine( + mockCommandLine, mockOptions, CommandEntities.CATALOG, CommandActions.UPDATE)); - assertThrows(RuntimeException.class, mockCatalogEnable::validate); + assertThrows( + RuntimeException.class, + () -> + commandLine + .newCatalogEnable( + GravitinoCommandLine.DEFAULT_URL, + false, + "metalake_demo", + "catalog", + true, + false) + .validate()); String errOutput = new String(errContent.toByteArray(), StandardCharsets.UTF_8).trim(); Assertions.assertEquals(ErrorMessages.INVALID_ENABLE_DISABLE, errOutput); } diff --git a/clients/cli/src/test/java/org/apache/gravitino/cli/TestMetalakeCommands.java b/clients/cli/src/test/java/org/apache/gravitino/cli/TestMetalakeCommands.java index 88baa0c43a2..881ffb82db6 100644 --- a/clients/cli/src/test/java/org/apache/gravitino/cli/TestMetalakeCommands.java +++ b/clients/cli/src/test/java/org/apache/gravitino/cli/TestMetalakeCommands.java @@ -432,12 +432,23 @@ void testDisableMetalakeCommand() { @SuppressWarnings("DefaultCharset") void testMetalakeWithDisableAndEnableOptions() { Main.useExit = false; - MetalakeEnable mockMetalakeEnable = + when(mockCommandLine.hasOption(GravitinoOptions.METALAKE)).thenReturn(true); + when(mockCommandLine.getOptionValue(GravitinoOptions.METALAKE)).thenReturn("metalake_demo"); + when(mockCommandLine.hasOption(GravitinoOptions.DISABLE)).thenReturn(true); + when(mockCommandLine.hasOption(GravitinoOptions.ENABLE)).thenReturn(true); + + GravitinoCommandLine commandLine = spy( - new MetalakeEnable( - GravitinoCommandLine.DEFAULT_URL, false, "metalake_demo", true, false)); + new GravitinoCommandLine( + mockCommandLine, mockOptions, CommandEntities.METALAKE, CommandActions.UPDATE)); - assertThrows(RuntimeException.class, mockMetalakeEnable::validate); + assertThrows( + RuntimeException.class, + () -> + commandLine + .newMetalakeEnable( + GravitinoCommandLine.DEFAULT_URL, false, "metalake_demo", true, false) + .validate()); String errOutput = new String(errContent.toByteArray(), StandardCharsets.UTF_8).trim(); Assertions.assertEquals(ErrorMessages.INVALID_ENABLE_DISABLE, errOutput); }