This is an automated email from the ASF dual-hosted git repository.

zhangyonglun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 2737b51  Refactor BootstrapArguments (#7287)
2737b51 is described below

commit 2737b51f357068e8ccced30e7228dda9413c00eb
Author: Liang Zhang <terrym...@163.com>
AuthorDate: Mon Sep 7 13:51:38 2020 +0800

    Refactor BootstrapArguments (#7287)
    
    * Remove useless fixture
    
    * Refactor BootstrapArguments
    
    * Refactor BootstrapArgumentsTest
---
 .../proxy/arg/BootstrapArguments.java              | 10 +++-
 .../proxy/arg/BootstrapArgumentsTest.java          | 56 ++++++++++++++--------
 .../shardingsphere/proxy/fixture/FixtureRule.java  | 21 --------
 3 files changed, 43 insertions(+), 44 deletions(-)

diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/arg/BootstrapArguments.java
 
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/arg/BootstrapArguments.java
index 7a97c81..4c704bc 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/arg/BootstrapArguments.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/arg/BootstrapArguments.java
@@ -54,7 +54,13 @@ public final class BootstrapArguments {
     }
     
     private String paddingWithSlash(final String arg) {
-        String path = arg.endsWith("/") ? arg : (arg + "/");
-        return path.startsWith("/") ? path : ("/" + path);
+        StringBuilder result = new StringBuilder(arg);
+        if (!arg.startsWith("/")) {
+            result.insert(0, '/');
+        }
+        if (!arg.endsWith("/")) {
+            result.append('/');
+        }
+        return result.toString();
     }
 }
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/test/java/org/apache/shardingsphere/proxy/arg/BootstrapArgumentsTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/test/java/org/apache/shardingsphere/proxy/arg/BootstrapArgumentsTest.java
index 3fe0799..8c1b138 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/test/java/org/apache/shardingsphere/proxy/arg/BootstrapArgumentsTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/test/java/org/apache/shardingsphere/proxy/arg/BootstrapArgumentsTest.java
@@ -25,42 +25,56 @@ import static org.junit.Assert.assertThat;
 public final class BootstrapArgumentsTest {
     
     @Test
-    public void assertEmptyArgs() {
+    public void assertNewWithEmptyArgument() {
         BootstrapArguments actual = new BootstrapArguments(new String[]{});
         assertThat(actual.getPort(), is(3307));
         assertThat(actual.getConfigurationPath(), is("/conf/"));
     }
     
-    @Test
-    public void assertWrongParam() {
-        String param = "WrongParam";
+    @SuppressWarnings("ResultOfObjectAllocationIgnored")
+    @Test(expected = IllegalArgumentException.class)
+    public void assertNewWithWrongArgument() {
+        String wrongArgument = "WrongArgument";
         try {
-            new BootstrapArguments(new String[]{param});
-        } catch (IllegalArgumentException e) {
-            assertThat(e.getMessage(), is(String.format("Invalid port `%s`.", 
param)));
+            new BootstrapArguments(new String[]{wrongArgument});
+        } catch (final IllegalArgumentException ex) {
+            assertThat(ex.getMessage(), is(String.format("Invalid port `%s`.", 
wrongArgument)));
+            throw ex;
         }
     }
     
     @Test
-    public void assertOneArgs() {
+    public void assertNewWithOneArgumentOnly() {
         BootstrapArguments actual = new BootstrapArguments(new 
String[]{"3306"});
         assertThat(actual.getPort(), is(3306));
         assertThat(actual.getConfigurationPath(), is("/conf/"));
     }
     
     @Test
-    public void assertTwoArgs() {
-        BootstrapArguments actual = new BootstrapArguments(new 
String[]{"3305", "test"});
-        assertThat(actual.getPort(), is(3305));
-        assertThat(actual.getConfigurationPath(), is("/test/"));
-        actual = new BootstrapArguments(new String[]{"3304", "/test1"});
-        assertThat(actual.getPort(), is(3304));
-        assertThat(actual.getConfigurationPath(), is("/test1/"));
-        actual = new BootstrapArguments(new String[]{"3303", "test2/"});
-        assertThat(actual.getPort(), is(3303));
-        assertThat(actual.getConfigurationPath(), is("/test2/"));
-        actual = new BootstrapArguments(new String[]{"3302", "/test3/"});
-        assertThat(actual.getPort(), is(3302));
-        assertThat(actual.getConfigurationPath(), is("/test3/"));
+    public void assertNewWithTwoArgumentsAndConfigurationPathWithoutSlash() {
+        BootstrapArguments actual = new BootstrapArguments(new 
String[]{"3306", "test_conf"});
+        assertThat(actual.getPort(), is(3306));
+        assertThat(actual.getConfigurationPath(), is("/test_conf/"));
+    }
+    
+    @Test
+    public void assertNewWithTwoArgumentsAndConfigurationPathWithLeftSlash() {
+        BootstrapArguments actual = new BootstrapArguments(new 
String[]{"3306", "/test_conf"});
+        assertThat(actual.getPort(), is(3306));
+        assertThat(actual.getConfigurationPath(), is("/test_conf/"));
+    }
+    
+    @Test
+    public void assertNewWithTwoArgumentsAndConfigurationPathWithRightSlash() {
+        BootstrapArguments actual = new BootstrapArguments(new 
String[]{"3306", "test_conf/"});
+        assertThat(actual.getPort(), is(3306));
+        assertThat(actual.getConfigurationPath(), is("/test_conf/"));
+    }
+    
+    @Test
+    public void assertNewWithTwoArgumentsAndConfigurationPathWithBothSlash() {
+        BootstrapArguments actual = new BootstrapArguments(new 
String[]{"3306", "/test_conf/"});
+        assertThat(actual.getPort(), is(3306));
+        assertThat(actual.getConfigurationPath(), is("/test_conf/"));
     }
 }
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/test/java/org/apache/shardingsphere/proxy/fixture/FixtureRule.java
 
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/test/java/org/apache/shardingsphere/proxy/fixture/FixtureRule.java
deleted file mode 100644
index 8c79bb7..0000000
--- 
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/test/java/org/apache/shardingsphere/proxy/fixture/FixtureRule.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.proxy.fixture;
-
-public final class FixtureRule {
-}

Reply via email to