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

liuxiaochun pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-dolphinscheduler.git


The following commit(s) were added to refs/heads/dev by this push:
     new bc8e06b  SchemaUtils.java TaskParametersUtils.java unit test (#1660)
bc8e06b is described below

commit bc8e06bb08be1eb7361e88f6c4f2c799aa170677
Author: khadgarmage <[email protected]>
AuthorDate: Tue Dec 31 22:51:56 2019 +0800

    SchemaUtils.java TaskParametersUtils.java unit test (#1660)
    
    * schemautils test and TaskParametersUtils test
---
 .../dolphinscheduler/common/utils/SchemaUtils.java |  24 ++---
 .../common/utils/SchemaUtilsTest.java              | 119 +++++++++++++++++++++
 .../common/utils/TaskParametersUtilsTest.java      |  48 +++++++++
 3 files changed, 179 insertions(+), 12 deletions(-)

diff --git 
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/SchemaUtils.java
 
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/SchemaUtils.java
index a4e16ba..7d341f3 100644
--- 
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/SchemaUtils.java
+++ 
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/SchemaUtils.java
@@ -35,7 +35,7 @@ import java.util.regex.Pattern;
  *
  */
 public class SchemaUtils {
-       
+
        private static final Logger logger = 
LoggerFactory.getLogger(SchemaUtils.class);
        private static Pattern p = Pattern.compile("\\s*|\t|\r|\n");
 
@@ -50,11 +50,11 @@ public class SchemaUtils {
                if(schemaDirArr == null || schemaDirArr.length == 0) {
                        return null;
                }
-               
+
                for(File file : schemaDirArr) {
                        schemaDirList.add(file.getName());
                }
-               
+
                Collections.sort(schemaDirList , new Comparator() {
                        @Override
                        public int compare(Object o1 , Object o2){
@@ -66,23 +66,23 @@ public class SchemaUtils {
                                        if(version1.equals(version2)) {
                                                return 0;
                                        }
-                                       
+
                                        
if(SchemaUtils.isAGreatVersion(version1, version2)) {
                                                return 1;
                                        }
-                                       
+
                                        return -1;
-                                       
+
                                } catch (Exception e) {
                                        logger.error(e.getMessage(),e);
                                        throw new RuntimeException(e);
                                }
                        }
                });
-               
+
                return schemaDirList;
        }
-       
+
        /**
         * Determine whether schemaVersion is higher than version
         * @param schemaVersion schema version
@@ -93,7 +93,7 @@ public class SchemaUtils {
                if(StringUtils.isEmpty(schemaVersion) || 
StringUtils.isEmpty(version)) {
                        throw new RuntimeException("schemaVersion or version is 
empty");
                }
-               
+
                String[] schemaVersionArr = schemaVersion.split("\\.");
                String[] versionArr = version.split("\\.");
                int arrLength = schemaVersionArr.length < versionArr.length ? 
schemaVersionArr.length : versionArr.length;
@@ -104,11 +104,11 @@ public class SchemaUtils {
                                return false;
                        }
                }
-               
+
                // If the version and schema version is the same from 0 up to 
the arrlength-1 element,whoever has a larger arrLength has a larger version 
number
                return schemaVersionArr.length > versionArr.length;
        }
-       
+
        /**
         * Gets the current software version number of the system
         * @return current software version
@@ -127,7 +127,7 @@ public class SchemaUtils {
                }
                return soft_version;
        }
-       
+
        /**
         * Strips the string of space carriage returns and tabs
         * @param str string
diff --git 
a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/SchemaUtilsTest.java
 
b/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/SchemaUtilsTest.java
new file mode 100644
index 0000000..907a09e
--- /dev/null
+++ 
b/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/SchemaUtilsTest.java
@@ -0,0 +1,119 @@
+/*
+ * 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.dolphinscheduler.common.utils;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+@RunWith(PowerMockRunner.class)
+@PrepareForTest({ LoggerFactory.class, FileUtils.class })
+public class SchemaUtilsTest {
+
+    @Test
+    public void testReplaceBlank() {
+        Assert.assertEquals("abc", SchemaUtils.replaceBlank(" abc"));
+        Assert.assertEquals("abc", SchemaUtils.replaceBlank("abc "));
+        Assert.assertEquals("abc", SchemaUtils.replaceBlank("a b c"));
+        Assert.assertEquals("abc", SchemaUtils.replaceBlank("a b   c"));
+        Assert.assertEquals("", SchemaUtils.replaceBlank("  "));
+        Assert.assertEquals("", SchemaUtils.replaceBlank(null));
+        Assert.assertEquals("我怕的你", SchemaUtils.replaceBlank("我怕的   你"));
+    }
+
+    @Test
+    public void testGetSoftVersion() {
+        // file not found
+        try {
+            SchemaUtils.getSoftVersion();
+        } catch (RuntimeException e) {
+            Assert.assertEquals("Failed to get the product version description 
file. The file could not be found",
+                    e.getMessage());
+        }
+
+        // file exists, fmt is invalid
+        FileUtils.writeContent2File("32432423", "sql/soft_version");
+        Assert.assertEquals("32432423", SchemaUtils.getSoftVersion());
+    }
+
+    @Test
+    public void testIsAGreatVersion() {
+        // param is null
+        try {
+            SchemaUtils.isAGreatVersion(null, null);
+        } catch (RuntimeException e) {
+            Assert.assertEquals("schemaVersion or version is empty", 
e.getMessage());
+        }
+
+        // param is ""
+        try {
+            SchemaUtils.isAGreatVersion("", "");
+        } catch (RuntimeException e) {
+            Assert.assertEquals("schemaVersion or version is empty", 
e.getMessage());
+        }
+        Assert.assertFalse(SchemaUtils.isAGreatVersion("1", "1"));
+        Assert.assertTrue(SchemaUtils.isAGreatVersion("2", "1"));
+        Assert.assertTrue(SchemaUtils.isAGreatVersion("1.1", "1"));
+        Assert.assertTrue(SchemaUtils.isAGreatVersion("1.1", "1.0.1"));
+        Assert.assertFalse(SchemaUtils.isAGreatVersion("1.1", "1.2"));
+        Assert.assertTrue(SchemaUtils.isAGreatVersion("1.1.1", "1.1"));
+        Assert.assertTrue(SchemaUtils.isAGreatVersion("10.1.1", "1.01.100"));
+        try {
+            SchemaUtils.isAGreatVersion("10.1.1", ".1");
+        } catch (Exception e) {
+            Assert.assertNotNull(e);
+        }
+        try {
+            SchemaUtils.isAGreatVersion("a.1.1", "b.1");
+        } catch (Exception e) {
+            Assert.assertNotNull(e);
+        }
+    }
+
+    @Test
+    public void testGetAllSchemaList() {
+        //normal
+        PowerMockito.mockStatic(FileUtils.class);
+        File[] files = new File[4];
+        files[0] = new File("sql/upgrade/1.2.0_schema");
+        files[1] = new File("sql/upgrade/1.0.1_schema");
+        files[2] = new File("sql/upgrade/1.0.2_schema");
+        files[3] = new File("sql/upgrade/1.1.0_schema");
+        
PowerMockito.when(FileUtils.getAllDir("sql/upgrade")).thenReturn(files);
+        List<String> real = SchemaUtils.getAllSchemaList();
+        List<String> expect = Arrays.asList("1.0.1_schema", "1.0.2_schema",
+                "1.1.0_schema", "1.2.0_schema");
+        Assert.assertTrue(CollectionUtils.isEqualCollection(real, expect));
+
+        //normal
+        files = new File[0];
+        
PowerMockito.when(FileUtils.getAllDir("sql/upgrade")).thenReturn(files);
+        real = SchemaUtils.getAllSchemaList();
+        Assert.assertNull(real);
+    }
+}
diff --git 
a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/TaskParametersUtilsTest.java
 
b/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/TaskParametersUtilsTest.java
new file mode 100644
index 0000000..db4a86b
--- /dev/null
+++ 
b/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/TaskParametersUtilsTest.java
@@ -0,0 +1,48 @@
+/*
+ * 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.dolphinscheduler.common.utils;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+import org.slf4j.LoggerFactory;
+
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(LoggerFactory.class)
+public class TaskParametersUtilsTest {
+
+    @Test
+    public void testGetParameters() {
+        Assert.assertNull(TaskParametersUtils.getParameters("xx", "ttt"));
+        Assert.assertNull(TaskParametersUtils.getParameters("SHELL", "ttt"));
+        Assert.assertNotNull(TaskParametersUtils.getParameters("SHELL", "{}"));
+        Assert.assertNotNull(TaskParametersUtils.getParameters("SQL", "{}"));
+        Assert.assertNotNull(TaskParametersUtils.getParameters("SUB_PROCESS", 
"{}"));
+        Assert.assertNotNull(TaskParametersUtils.getParameters("PROCEDURE", 
"{}"));
+        Assert.assertNotNull(TaskParametersUtils.getParameters("MR", "{}"));
+        Assert.assertNotNull(TaskParametersUtils.getParameters("SPARK", "{}"));
+        Assert.assertNotNull(TaskParametersUtils.getParameters("PYTHON", 
"{}"));
+        Assert.assertNotNull(TaskParametersUtils.getParameters("DEPENDENT", 
"{}"));
+        Assert.assertNotNull(TaskParametersUtils.getParameters("FLINK", "{}"));
+        Assert.assertNotNull(TaskParametersUtils.getParameters("HTTP", "{}"));
+    }
+}

Reply via email to