khadgarmage
5 years ago
committed by
GitHub
3 changed files with 179 additions and 12 deletions
@ -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); |
||||
} |
||||
} |
@ -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", "{}")); |
||||
} |
||||
} |
Loading…
Reference in new issue