From ea9c1c86d74be6a4403fad3e6ca57c90002c732b Mon Sep 17 00:00:00 2001 From: zzzk1 Date: Tue, 27 Feb 2024 22:50:00 +0800 Subject: [PATCH] [Improve] Refactor update setting interface --- .../bean/SettingAlertEmailConfigParams.java | 139 +++++------ .../core/bean/SettingDockerConfigParams.java | 114 ++++----- .../core/controller/SettingController.java | 10 +- .../console/core/service/SettingService.java | 5 +- .../core/service/impl/SettingServiceImpl.java | 4 +- .../SettingAlertEmailConfigParamsTest.java | 221 +++++++++-------- .../bean/SettingDockerConfigParamsTest.java | 224 +++++++++--------- .../core/service/SettingServiceTest.java | 196 +++++++-------- 8 files changed, 456 insertions(+), 457 deletions(-) diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/SettingAlertEmailConfigParams.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/SettingAlertEmailConfigParams.java index 6338841987..f6120d9e39 100644 --- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/SettingAlertEmailConfigParams.java +++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/SettingAlertEmailConfigParams.java @@ -26,73 +26,74 @@ @Data public class SettingAlertEmailConfigParams { - private Setting host; - private Setting port; - private Setting from; - private Setting username; - private Setting password; - private Setting ssl; - /* Only letters, digits, underscores, periods, and hyphens are allowed */ - private static final String EMAIL_ADDRESS_REGEXP = "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$"; - /* The port value must be between 0-65535 */ - private static final String PORT_REGEXP = - "^([1-9]\\d{0,3}|[1-5]\\d{4}|6[0-4]\\d{3}|65[0-4]\\d{2}|655[0-2]\\d|6553[0-5])$"; - private static final String FROM_REGEXP = ""; - /* Letters start with 5-16 bytes, alphanumeric underscores are allowed */ - private static final String USER_NAME_REGEXP = "^[a-zA-Z][a-zA-Z0-9_]{4,15}$"; - /* Letters start with 5-16 bytes, alphanumeric underscores are allowed */ - private static final String PASS_WORD_REGEXP = "^[a-zA-Z][a-zA-Z0-9_]{4,15}$"; - /* Whether SSL is enabled or not can only be true false */ - private static final String SSL_REGEXP = "^(true|false)$"; - - public static boolean verifyParams(SettingAlertEmailConfigParams params) { - return params.verifyHost() - && params.verifyPort() - && params.verifyFrom() - && params.verifyUserName() - && params.verifyPassWord() - && params.verifySSL(); - } - - private boolean verifyHost() { - if (Objects.isNull(getHost()) || Objects.isNull(getHost().getSettingValue())) { - return false; - } - return Pattern.matches(EMAIL_ADDRESS_REGEXP, getHost().getSettingValue()); - } - - private boolean verifyPort() { - if (Objects.isNull(getPort()) || Objects.isNull(getPort().getSettingValue())) { - return false; - } - return Pattern.matches(PORT_REGEXP, getPort().getSettingValue()); - } - - private boolean verifyFrom() { - if (Objects.isNull(getFrom()) || Objects.isNull(getFrom().getSettingValue())) { - return false; - } - return Pattern.matches(FROM_REGEXP, getFrom().getSettingValue()); - } - - private boolean verifyUserName() { - if (Objects.isNull(getUsername()) || Objects.isNull(getUsername().getSettingValue())) { - return false; - } - return Pattern.matches(USER_NAME_REGEXP, getUsername().getSettingValue()); - } - - private boolean verifyPassWord() { - if (Objects.isNull(getPassword()) || Objects.isNull(getPassword().getSettingValue())) { - return false; - } - return Pattern.matches(PASS_WORD_REGEXP, getPassword().getSettingValue()); - } - - private boolean verifySSL() { - if (Objects.isNull(getSsl()) || Objects.isNull(getSsl().getSettingValue())) { - return false; - } - return Pattern.matches(SSL_REGEXP, getSsl().getSettingValue()); - } + private Setting host; + private Setting port; + private Setting from; + private Setting username; + private Setting password; + private Setting ssl; + /* Only letters, digits, underscores, periods, and hyphens are allowed */ + private static final String EMAIL_ADDRESS_REGEXP = + "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$"; + /* The port value must be between 0-65535 */ + private static final String PORT_REGEXP = + "^([1-9]\\d{0,3}|[1-5]\\d{4}|6[0-4]\\d{3}|65[0-4]\\d{2}|655[0-2]\\d|6553[0-5])$"; + private static final String FROM_REGEXP = ""; + /* Letters start with 5-16 bytes, alphanumeric underscores are allowed */ + private static final String USER_NAME_REGEXP = "^[a-zA-Z][a-zA-Z0-9_]{4,15}$"; + /* Letters start with 5-16 bytes, alphanumeric underscores are allowed */ + private static final String PASS_WORD_REGEXP = "^[a-zA-Z][a-zA-Z0-9_]{4,15}$"; + /* Whether SSL is enabled or not can only be true false */ + private static final String SSL_REGEXP = "^(true|false)$"; + + public static boolean verifyParams(SettingAlertEmailConfigParams params) { + return params.verifyHost() + && params.verifyPort() + && params.verifyFrom() + && params.verifyUserName() + && params.verifyPassWord() + && params.verifySSL(); + } + + private boolean verifyHost() { + if (Objects.isNull(getHost()) || Objects.isNull(getHost().getSettingValue())) { + return false; + } + return Pattern.matches(EMAIL_ADDRESS_REGEXP, getHost().getSettingValue()); + } + + private boolean verifyPort() { + if (Objects.isNull(getPort()) || Objects.isNull(getPort().getSettingValue())) { + return false; + } + return Pattern.matches(PORT_REGEXP, getPort().getSettingValue()); + } + + private boolean verifyFrom() { + if (Objects.isNull(getFrom()) || Objects.isNull(getFrom().getSettingValue())) { + return false; + } + return Pattern.matches(FROM_REGEXP, getFrom().getSettingValue()); + } + + private boolean verifyUserName() { + if (Objects.isNull(getUsername()) || Objects.isNull(getUsername().getSettingValue())) { + return false; + } + return Pattern.matches(USER_NAME_REGEXP, getUsername().getSettingValue()); + } + + private boolean verifyPassWord() { + if (Objects.isNull(getPassword()) || Objects.isNull(getPassword().getSettingValue())) { + return false; + } + return Pattern.matches(PASS_WORD_REGEXP, getPassword().getSettingValue()); + } + + private boolean verifySSL() { + if (Objects.isNull(getSsl()) || Objects.isNull(getSsl().getSettingValue())) { + return false; + } + return Pattern.matches(SSL_REGEXP, getSsl().getSettingValue()); + } } diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/SettingDockerConfigParams.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/SettingDockerConfigParams.java index d093a6c95d..af81ef1152 100644 --- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/SettingDockerConfigParams.java +++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/SettingDockerConfigParams.java @@ -26,61 +26,61 @@ @Data public class SettingDockerConfigParams { - private Setting username; - private Setting password; - private Setting address; - private Setting namespace; - - /* Letters start with 5-16 bytes, alphanumeric underscores are allowed */ - private static final String USER_NAME_REGEXP = "^[a-zA-Z][a-zA-Z0-9_]{4,15}$"; - /* Letters start with 5-16 bytes, alphanumeric underscores are allowed */ - private static final String PASSWORD_REGEXP = "^[a-zA-Z][a-zA-Z0-9_]{4,15}$"; - /*ipv4 match rule */ - private static final String IPV4_ADDRESS_REGEX = - "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"; - /*ipv6 match rule */ - private static final String IPV6_ADDRESS_REGEX = "^([0-9a-fA-F]{1,4}:){7}([0-9a-fA-F]{1,4}|:)$"; - /* domain match rule */ - private static final String DOMAIN_NAME_REGEX = - "^((http:\\/\\/)|(https:\\/\\/))?([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,6}(\\/)"; - /* Docker namespace rules based on the format of the domain name */ - private static final String NAMESPACE_REGEX = "^(?!-)[a-zA-Z0-9-]{1,253}(? settings = Arrays.asList( params.getAddress(), params.getNamespace(), @@ -97,7 +97,7 @@ public RestResponse updateDocker(@RequestBody SettingDockerConfigParams params) boolean updated = settingService.updateSettings(settings); return RestResponse.success(updated); } - + @Operation(summary = "Update alert email") @PostMapping("update/alert/email") @RequiresPermissions("setting:update") @@ -105,7 +105,7 @@ public RestResponse updateAlertEmail(@RequestBody SettingAlertEmailConfigParams if (!SettingAlertEmailConfigParams.verifyParams(params)) { return RestResponse.fail("The parameter is incorrect, please check!", ResponseCode.CODE_FAIL); } - + List settings = Arrays.asList( params.getHost(), @@ -117,7 +117,7 @@ public RestResponse updateAlertEmail(@RequestBody SettingAlertEmailConfigParams boolean updated = settingService.updateSettings(settings); return RestResponse.success(updated); } - + @Operation(summary = "Check hadoop status") @PostMapping("checkHadoop") public RestResponse checkHadoop() { diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/SettingService.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/SettingService.java index 1a19dae4af..2c9354078f 100644 --- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/SettingService.java +++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/SettingService.java @@ -54,7 +54,7 @@ public interface SettingService extends IService { Setting get(String key); boolean update(Setting setting); - + /** * * Updates the specified Settings. * @@ -62,8 +62,7 @@ public interface SettingService extends IService { * @return true if the update is successful, false otherwise */ boolean updateSettings(List settings); - - + String getStreamParkAddress(); String getMavenSettings(); diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/SettingServiceImpl.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/SettingServiceImpl.java index bfd493e12a..c5a877fdca 100644 --- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/SettingServiceImpl.java +++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/SettingServiceImpl.java @@ -94,7 +94,7 @@ public boolean update(Setting setting) { return false; } } - + public boolean updateSettings(List settings) { for (Setting each : settings) { boolean result = update(each); @@ -104,7 +104,7 @@ public boolean updateSettings(List settings) { } return true; } - + @Override public SenderEmail getSenderEmail() { try { diff --git a/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/bean/SettingAlertEmailConfigParamsTest.java b/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/bean/SettingAlertEmailConfigParamsTest.java index 676c2d87f2..6ae7feeb2f 100644 --- a/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/bean/SettingAlertEmailConfigParamsTest.java +++ b/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/bean/SettingAlertEmailConfigParamsTest.java @@ -27,115 +27,114 @@ import java.lang.reflect.Method; public class SettingAlertEmailConfigParamsTest { - private SettingAlertEmailConfigParams alertEmailConfigParams; - private Setting setting; - private Method method; - - @BeforeEach - void setUp() { - alertEmailConfigParams = new SettingAlertEmailConfigParams(); - setting = new Setting(); - } - - @Test - void verifyEmailHostTest() - throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { - alertEmailConfigParams.setHost(setting); - initVerifyMethod("verifyHost"); - - setting.setSettingValue("test"); - Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); - - setting.setSettingValue("testEmail@test.com"); - Assertions.assertTrue((boolean) method.invoke(alertEmailConfigParams)); - - setting.setSettingValue("testEmail/test.com"); - Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); - - setting.setSettingValue(null); - Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); - } - - @Test - void verifyEmailPortTest() - throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { - alertEmailConfigParams.setPort(setting); - initVerifyMethod("verifyPort"); - - setting.setSettingValue("3306"); - Assertions.assertTrue((boolean) method.invoke(alertEmailConfigParams)); - - setting.setSettingValue("65535"); - Assertions.assertTrue((boolean) method.invoke(alertEmailConfigParams)); - - setting.setSettingValue("-1"); - Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); - - setting.setSettingValue("0"); - Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); - - setting.setSettingValue("65536"); - Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); - - setting.setSettingValue(null); - Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); - } - - /* TODO .. */ - @Test - void verifyFromTest() throws NoSuchMethodException { - alertEmailConfigParams.setHost(setting); - initVerifyMethod("verifyFrom"); - } - - @Test - void verifyUserNameTest() - throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { - alertEmailConfigParams.setUsername(setting); - initVerifyMethod("verifyUserName"); - - - setting.setSettingValue("Aa111111"); - Assertions.assertTrue((boolean) method.invoke(alertEmailConfigParams)); - - setting.setSettingValue("Aa@aa_"); - Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); - - setting.setSettingValue("test"); - Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); - - setting.setSettingValue("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"); - Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); - - setting.setSettingValue(null); - Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); - } - - @Test - void verifyPassWordTest() - throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { - alertEmailConfigParams.setPassword(setting); - initVerifyMethod("verifyPassWord"); - - setting.setSettingValue("AaaAaa"); - Assertions.assertTrue((boolean) method.invoke(alertEmailConfigParams)); - - setting.setSettingValue("AaAa"); - Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); - - setting.setSettingValue("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"); - Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); - - setting.setSettingValue("123456789"); - Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); - - setting.setSettingValue(null); - Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); - } - - void initVerifyMethod(final String methodName) throws NoSuchMethodException { - Class clazz = SettingAlertEmailConfigParams.class; - method = clazz.getDeclaredMethod(methodName); - method.setAccessible(true); - } + private SettingAlertEmailConfigParams alertEmailConfigParams; + private Setting setting; + private Method method; + + @BeforeEach + void setUp() { + alertEmailConfigParams = new SettingAlertEmailConfigParams(); + setting = new Setting(); + } + + @Test + void verifyEmailHostTest() + throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { + alertEmailConfigParams.setHost(setting); + initVerifyMethod("verifyHost"); + + setting.setSettingValue("test"); + Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); + + setting.setSettingValue("testEmail@test.com"); + Assertions.assertTrue((boolean) method.invoke(alertEmailConfigParams)); + + setting.setSettingValue("testEmail/test.com"); + Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); + + setting.setSettingValue(null); + Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); + } + + @Test + void verifyEmailPortTest() + throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { + alertEmailConfigParams.setPort(setting); + initVerifyMethod("verifyPort"); + + setting.setSettingValue("3306"); + Assertions.assertTrue((boolean) method.invoke(alertEmailConfigParams)); + + setting.setSettingValue("65535"); + Assertions.assertTrue((boolean) method.invoke(alertEmailConfigParams)); + + setting.setSettingValue("-1"); + Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); + + setting.setSettingValue("0"); + Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); + + setting.setSettingValue("65536"); + Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); + + setting.setSettingValue(null); + Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); + } + + /* TODO .. */ + @Test + void verifyFromTest() throws NoSuchMethodException { + alertEmailConfigParams.setHost(setting); + initVerifyMethod("verifyFrom"); + } + + @Test + void verifyUserNameTest() + throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { + alertEmailConfigParams.setUsername(setting); + initVerifyMethod("verifyUserName"); + + setting.setSettingValue("Aa111111"); + Assertions.assertTrue((boolean) method.invoke(alertEmailConfigParams)); + + setting.setSettingValue("Aa@aa_"); + Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); + + setting.setSettingValue("test"); + Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); + + setting.setSettingValue("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"); + Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); + + setting.setSettingValue(null); + Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); + } + + @Test + void verifyPassWordTest() + throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { + alertEmailConfigParams.setPassword(setting); + initVerifyMethod("verifyPassWord"); + + setting.setSettingValue("AaaAaa"); + Assertions.assertTrue((boolean) method.invoke(alertEmailConfigParams)); + + setting.setSettingValue("AaAa"); + Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); + + setting.setSettingValue("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"); + Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); + + setting.setSettingValue("123456789"); + Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); + + setting.setSettingValue(null); + Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams)); + } + + void initVerifyMethod(final String methodName) throws NoSuchMethodException { + Class clazz = SettingAlertEmailConfigParams.class; + method = clazz.getDeclaredMethod(methodName); + method.setAccessible(true); + } } diff --git a/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/bean/SettingDockerConfigParamsTest.java b/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/bean/SettingDockerConfigParamsTest.java index 2a3e66d8b3..abb2b05706 100644 --- a/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/bean/SettingDockerConfigParamsTest.java +++ b/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/bean/SettingDockerConfigParamsTest.java @@ -27,116 +27,116 @@ import java.lang.reflect.Method; public class SettingDockerConfigParamsTest { - private SettingDockerConfigParams dockerConfigParams; - private Setting setting; - private Method method; - - @BeforeEach - void setUp() { - dockerConfigParams = new SettingDockerConfigParams(); - setting = new Setting(); - } - - @Test - void verifyUserNameTest() - throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { - dockerConfigParams.setUsername(setting); - initVerifyMethod("verifyUserName"); - - setting.setSettingValue("Aa111111"); - Assertions.assertTrue((boolean) method.invoke(dockerConfigParams)); - - setting.setSettingValue("Aa111111@"); - Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); - - setting.setSettingValue("Aa@aa_"); - Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); - - setting.setSettingValue("test"); - Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); - - setting.setSettingValue("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"); - Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); - - setting.setSettingValue(null); - Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); - } - - @Test - void verifyPassWordTest() - throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { - dockerConfigParams.setPassword(setting); - initVerifyMethod("verifyPassWord"); - - setting.setSettingValue("AaaAaa"); - Assertions.assertTrue((boolean) method.invoke(dockerConfigParams)); - - setting.setSettingValue("AaAa"); - Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); - - setting.setSettingValue("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"); - Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); - - setting.setSettingValue("123456789"); - Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); - - setting.setSettingValue(null); - Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); - } - - @Test - void verifyAddressTest() - throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { - dockerConfigParams.setAddress(setting); - initVerifyMethod("verifyAddress"); - - setting.setSettingValue("https://www.google.com/"); - Assertions.assertTrue((boolean) method.invoke(dockerConfigParams)); - - setting.setSettingValue("http://www.google.com/"); - Assertions.assertTrue((boolean) method.invoke(dockerConfigParams)); - - setting.setSettingValue("www.google.com"); - Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); - - setting.setSettingValue("2001:0db8:85a3:0000:0000:8a2e:0370:7334"); - Assertions.assertTrue((boolean) method.invoke(dockerConfigParams)); - - setting.setSettingValue("127.0.0.1"); - Assertions.assertTrue((boolean) method.invoke(dockerConfigParams)); - - setting.setSettingValue("htp://www.google.com"); - Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); - - setting.setSettingValue("ww.google.com"); - Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); - - setting.setSettingValue("localhost"); - Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); - - setting.setSettingValue("0.0.0"); - Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); - - setting.setSettingValue(null); - Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); - } - - @Test - void verifyNameSpaceTest() - throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { - dockerConfigParams.setAddress(setting); - initVerifyMethod("verifyNameSpace"); - - setting.setSettingValue("dom.mod"); - Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); - - setting.setSettingValue(null); - Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); - } - - void initVerifyMethod(final String methodName) throws NoSuchMethodException { - Class clazz = SettingDockerConfigParams.class; - method = clazz.getDeclaredMethod(methodName); - method.setAccessible(true); - } + private SettingDockerConfigParams dockerConfigParams; + private Setting setting; + private Method method; + + @BeforeEach + void setUp() { + dockerConfigParams = new SettingDockerConfigParams(); + setting = new Setting(); + } + + @Test + void verifyUserNameTest() + throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { + dockerConfigParams.setUsername(setting); + initVerifyMethod("verifyUserName"); + + setting.setSettingValue("Aa111111"); + Assertions.assertTrue((boolean) method.invoke(dockerConfigParams)); + + setting.setSettingValue("Aa111111@"); + Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); + + setting.setSettingValue("Aa@aa_"); + Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); + + setting.setSettingValue("test"); + Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); + + setting.setSettingValue("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"); + Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); + + setting.setSettingValue(null); + Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); + } + + @Test + void verifyPassWordTest() + throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { + dockerConfigParams.setPassword(setting); + initVerifyMethod("verifyPassWord"); + + setting.setSettingValue("AaaAaa"); + Assertions.assertTrue((boolean) method.invoke(dockerConfigParams)); + + setting.setSettingValue("AaAa"); + Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); + + setting.setSettingValue("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"); + Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); + + setting.setSettingValue("123456789"); + Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); + + setting.setSettingValue(null); + Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); + } + + @Test + void verifyAddressTest() + throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { + dockerConfigParams.setAddress(setting); + initVerifyMethod("verifyAddress"); + + setting.setSettingValue("https://www.google.com/"); + Assertions.assertTrue((boolean) method.invoke(dockerConfigParams)); + + setting.setSettingValue("http://www.google.com/"); + Assertions.assertTrue((boolean) method.invoke(dockerConfigParams)); + + setting.setSettingValue("www.google.com"); + Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); + + setting.setSettingValue("2001:0db8:85a3:0000:0000:8a2e:0370:7334"); + Assertions.assertTrue((boolean) method.invoke(dockerConfigParams)); + + setting.setSettingValue("127.0.0.1"); + Assertions.assertTrue((boolean) method.invoke(dockerConfigParams)); + + setting.setSettingValue("htp://www.google.com"); + Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); + + setting.setSettingValue("ww.google.com"); + Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); + + setting.setSettingValue("localhost"); + Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); + + setting.setSettingValue("0.0.0"); + Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); + + setting.setSettingValue(null); + Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); + } + + @Test + void verifyNameSpaceTest() + throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { + dockerConfigParams.setAddress(setting); + initVerifyMethod("verifyNameSpace"); + + setting.setSettingValue("dom.mod"); + Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); + + setting.setSettingValue(null); + Assertions.assertFalse((boolean) method.invoke(dockerConfigParams)); + } + + void initVerifyMethod(final String methodName) throws NoSuchMethodException { + Class clazz = SettingDockerConfigParams.class; + method = clazz.getDeclaredMethod(methodName); + method.setAccessible(true); + } } diff --git a/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/service/SettingServiceTest.java b/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/service/SettingServiceTest.java index 0573a7c1ef..17f839ff6a 100644 --- a/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/service/SettingServiceTest.java +++ b/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/service/SettingServiceTest.java @@ -29,102 +29,102 @@ import java.util.Arrays; import java.util.List; -class SettingServiceTest extends SpringTestBase { - private final SettingDockerConfigParams dockerConfigParams = new SettingDockerConfigParams(); - private final SettingAlertEmailConfigParams alertEmailConfigParams = - new SettingAlertEmailConfigParams(); - - @Autowired SettingService settingService; - - /*docker config*/ - void initDockerConfigParams(SettingDockerConfigParams params) { - Setting address = settingService.get("docker.register.address"); - address.setSettingValue("test-address-setting-value"); - Setting username = settingService.get("docker.register.user"); - username.setSettingValue("test-username-setting-value"); - Setting password = settingService.get("docker.register.password"); - password.setSettingValue("test-password-setting-value"); - Setting namespace = settingService.get("docker.register.namespace"); - namespace.setSettingValue("test-namespace-setting-value"); - params.setAddress(address); - params.setUsername(username); - params.setPassword(password); - params.setNamespace(namespace); - } - - @Test - void testUpdateDockerConfigTest() { - initDockerConfigParams(dockerConfigParams); - List settings = - Arrays.asList( - dockerConfigParams.getAddress(), - dockerConfigParams.getNamespace(), - dockerConfigParams.getUsername(), - dockerConfigParams.getPassword()); - settingService.updateSettings(settings); - - Assertions.assertEquals( - "test-address-setting-value", - settingService.get("docker.register.address").getSettingValue()); - Assertions.assertEquals( - "test-username-setting-value", - settingService.get("docker.register.user").getSettingValue()); - Assertions.assertEquals( - "test-password-setting-value", - settingService.get("docker.register.password").getSettingValue()); - Assertions.assertEquals( - "test-namespace-setting-value", - settingService.get("docker.register.namespace").getSettingValue()); - } - - /*alert email config*/ - void initAlertEmailConfigParams(SettingAlertEmailConfigParams params) { - Setting host = settingService.get("alert.email.host"); - host.setSettingValue("test-host-setting-value"); - Setting port = settingService.get("alert.email.port"); - port.setSettingValue("test-port-setting-value"); - Setting from = settingService.get("alert.email.from"); - from.setSettingValue("test-from-setting-value"); - Setting username = settingService.get("alert.email.userName"); - username.setSettingValue("test-username-setting-value"); - Setting password = settingService.get("alert.email.password"); - password.setSettingValue("test-password-setting-value"); - Setting ssl = settingService.get("alert.email.ssl"); - ssl.setSettingValue("test-ssl-setting-value"); - params.setHost(host); - params.setPort(port); - params.setFrom(from); - params.setUsername(username); - params.setPassword(password); - params.setSsl(ssl); - } - - @Test - void testUpdateAlertEmailConfigTest() { - initAlertEmailConfigParams(alertEmailConfigParams); - List settings = - Arrays.asList( - alertEmailConfigParams.getHost(), - alertEmailConfigParams.getPort(), - alertEmailConfigParams.getFrom(), - alertEmailConfigParams.getUsername(), - alertEmailConfigParams.getPassword(), - alertEmailConfigParams.getSsl()); - settingService.updateSettings(settings); - - Assertions.assertEquals( - "test-host-setting-value", settingService.get("alert.email.host").getSettingValue()); - Assertions.assertEquals( - "test-port-setting-value", settingService.get("alert.email.port").getSettingValue()); - Assertions.assertEquals( - "test-from-setting-value", settingService.get("alert.email.from").getSettingValue()); - Assertions.assertEquals( - "test-username-setting-value", - settingService.get("alert.email.userName").getSettingValue()); - Assertions.assertEquals( - "test-password-setting-value", - settingService.get("alert.email.password").getSettingValue()); - Assertions.assertEquals( - "test-ssl-setting-value", settingService.get("alert.email.ssl").getSettingValue()); - } +class SettingServiceTest extends SpringTestBase { + private final SettingDockerConfigParams dockerConfigParams = new SettingDockerConfigParams(); + private final SettingAlertEmailConfigParams alertEmailConfigParams = + new SettingAlertEmailConfigParams(); + + @Autowired SettingService settingService; + + /*docker config*/ + void initDockerConfigParams(SettingDockerConfigParams params) { + Setting address = settingService.get("docker.register.address"); + address.setSettingValue("test-address-setting-value"); + Setting username = settingService.get("docker.register.user"); + username.setSettingValue("test-username-setting-value"); + Setting password = settingService.get("docker.register.password"); + password.setSettingValue("test-password-setting-value"); + Setting namespace = settingService.get("docker.register.namespace"); + namespace.setSettingValue("test-namespace-setting-value"); + params.setAddress(address); + params.setUsername(username); + params.setPassword(password); + params.setNamespace(namespace); + } + + @Test + void testUpdateDockerConfigTest() { + initDockerConfigParams(dockerConfigParams); + List settings = + Arrays.asList( + dockerConfigParams.getAddress(), + dockerConfigParams.getNamespace(), + dockerConfigParams.getUsername(), + dockerConfigParams.getPassword()); + settingService.updateSettings(settings); + + Assertions.assertEquals( + "test-address-setting-value", + settingService.get("docker.register.address").getSettingValue()); + Assertions.assertEquals( + "test-username-setting-value", + settingService.get("docker.register.user").getSettingValue()); + Assertions.assertEquals( + "test-password-setting-value", + settingService.get("docker.register.password").getSettingValue()); + Assertions.assertEquals( + "test-namespace-setting-value", + settingService.get("docker.register.namespace").getSettingValue()); + } + + /*alert email config*/ + void initAlertEmailConfigParams(SettingAlertEmailConfigParams params) { + Setting host = settingService.get("alert.email.host"); + host.setSettingValue("test-host-setting-value"); + Setting port = settingService.get("alert.email.port"); + port.setSettingValue("test-port-setting-value"); + Setting from = settingService.get("alert.email.from"); + from.setSettingValue("test-from-setting-value"); + Setting username = settingService.get("alert.email.userName"); + username.setSettingValue("test-username-setting-value"); + Setting password = settingService.get("alert.email.password"); + password.setSettingValue("test-password-setting-value"); + Setting ssl = settingService.get("alert.email.ssl"); + ssl.setSettingValue("test-ssl-setting-value"); + params.setHost(host); + params.setPort(port); + params.setFrom(from); + params.setUsername(username); + params.setPassword(password); + params.setSsl(ssl); + } + + @Test + void testUpdateAlertEmailConfigTest() { + initAlertEmailConfigParams(alertEmailConfigParams); + List settings = + Arrays.asList( + alertEmailConfigParams.getHost(), + alertEmailConfigParams.getPort(), + alertEmailConfigParams.getFrom(), + alertEmailConfigParams.getUsername(), + alertEmailConfigParams.getPassword(), + alertEmailConfigParams.getSsl()); + settingService.updateSettings(settings); + + Assertions.assertEquals( + "test-host-setting-value", settingService.get("alert.email.host").getSettingValue()); + Assertions.assertEquals( + "test-port-setting-value", settingService.get("alert.email.port").getSettingValue()); + Assertions.assertEquals( + "test-from-setting-value", settingService.get("alert.email.from").getSettingValue()); + Assertions.assertEquals( + "test-username-setting-value", + settingService.get("alert.email.userName").getSettingValue()); + Assertions.assertEquals( + "test-password-setting-value", + settingService.get("alert.email.password").getSettingValue()); + Assertions.assertEquals( + "test-ssl-setting-value", settingService.get("alert.email.ssl").getSettingValue()); + } }