|
@@ -14,25 +14,30 @@
|
|
|
* See the License for the specific language governing permissions and
|
|
|
* limitations under the License.
|
|
|
*/
|
|
|
+
|
|
|
package org.apache.dolphinscheduler.common.utils;
|
|
|
|
|
|
-import org.apache.commons.lang.time.DateUtils;
|
|
|
+import static org.apache.dolphinscheduler.common.utils.placeholder.TimePlaceholderUtils.replacePlaceholders;
|
|
|
+
|
|
|
+import org.apache.dolphinscheduler.common.Constants;
|
|
|
import org.apache.dolphinscheduler.common.enums.CommandType;
|
|
|
import org.apache.dolphinscheduler.common.enums.DataType;
|
|
|
import org.apache.dolphinscheduler.common.enums.Direct;
|
|
|
import org.apache.dolphinscheduler.common.process.Property;
|
|
|
import org.apache.dolphinscheduler.common.utils.placeholder.PlaceholderUtils;
|
|
|
+
|
|
|
+import java.text.ParseException;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
import org.junit.Assert;
|
|
|
import org.junit.Test;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
|
-import java.util.*;
|
|
|
-
|
|
|
-import static org.apache.dolphinscheduler.common.Constants.PARAMETER_FORMAT_TIME;
|
|
|
-import static org.apache.dolphinscheduler.common.utils.placeholder.TimePlaceholderUtils.replacePlaceholders;
|
|
|
-
|
|
|
-
|
|
|
public class ParameterUtilsTest {
|
|
|
public static final Logger logger = LoggerFactory.getLogger(ParameterUtilsTest.class);
|
|
|
|
|
@@ -40,13 +45,13 @@ public class ParameterUtilsTest {
|
|
|
* Test convertParameterPlaceholders
|
|
|
*/
|
|
|
@Test
|
|
|
- public void testConvertParameterPlaceholders() throws Exception {
|
|
|
+ public void testConvertParameterPlaceholders() throws ParseException {
|
|
|
|
|
|
Assert.assertNull(ParameterUtils.convertParameterPlaceholders(null, null));
|
|
|
|
|
|
|
|
|
- Map<String, String> parameterMap = new HashMap<String,String>();
|
|
|
- parameterMap.put("testParameter","testParameter");
|
|
|
+ Map<String, String> parameterMap = new HashMap<String, String>();
|
|
|
+ parameterMap.put("testParameter", "testParameter");
|
|
|
Assert.assertNull(ParameterUtils.convertParameterPlaceholders(null, parameterMap));
|
|
|
|
|
|
|
|
@@ -54,60 +59,72 @@ public class ParameterUtilsTest {
|
|
|
Assert.assertEquals(parameterString, ParameterUtils.convertParameterPlaceholders(parameterString, parameterMap));
|
|
|
|
|
|
|
|
|
- parameterMap.put("testParameter2","${testParameter}");
|
|
|
- Assert.assertEquals(parameterString,PlaceholderUtils.replacePlaceholders(parameterString, parameterMap, true));
|
|
|
+ parameterMap.put("testParameter2", "${testParameter}");
|
|
|
+ Assert.assertEquals(parameterString, PlaceholderUtils.replacePlaceholders(parameterString, parameterMap, true));
|
|
|
|
|
|
|
|
|
Date cronTime = new Date();
|
|
|
Assert.assertEquals(parameterString, replacePlaceholders(parameterString, cronTime, true));
|
|
|
|
|
|
|
|
|
- Date cronTimeStr = DateUtils.parseDate("20191220145900", new String[]{PARAMETER_FORMAT_TIME});
|
|
|
+ Date cronTimeStr = DateUtils.stringToDate("2019-02-02 00:00:00");
|
|
|
Assert.assertEquals(parameterString, replacePlaceholders(parameterString, cronTimeStr, true));
|
|
|
}
|
|
|
|
|
|
+ @Test
|
|
|
+ public void testConvertParameterPlaceholders2() {
|
|
|
+ String parameterString =
|
|
|
+ "${user} is userName, '$[1]' '$[add_months(yyyyMMdd,12*2)]' '$[add_months(yyyyMMdd,-12*2)]' '$[add_months(yyyyMMdd,3)]' '$[add_months(yyyyMMdd,-4)]' "
|
|
|
+ + "'$[yyyyMMdd+7*2]' '$[yyyyMMdd-7*2]' '$[yyyyMMdd+3]' '$[0]' '$[yyyyMMdd-3]' '$[HHmmss+2/24]' '$[HHmmss-1/24]' '$[HHmmss+3/24/60]' '$[HHmmss-2/24/60]' '$[3]'";
|
|
|
+ Map<String, String> parameterMap = new HashMap<>();
|
|
|
+ parameterMap.put("user", "Kris");
|
|
|
+ parameterMap.put(Constants.PARAMETER_DATETIME, "20201201123000");
|
|
|
+ parameterString = ParameterUtils.convertParameterPlaceholders(parameterString, parameterMap);
|
|
|
+ Assert.assertEquals("Kris is userName, '$[1]' '20221201' '20181201' '20210301' '20200801' '20201215' '20201117' '20201204' '$[0]' '20201128' '143000' '113000' '123300' '122800' '$[3]'",
|
|
|
+ parameterString);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
* Test curingGlobalParams
|
|
|
*/
|
|
|
@Test
|
|
|
- public void testCuringGlobalParams() throws Exception {
|
|
|
+ public void testCuringGlobalParams() {
|
|
|
|
|
|
Map<String, String> globalParamMap = new HashMap<>();
|
|
|
- globalParamMap.put("globalParams1","Params1");
|
|
|
+ globalParamMap.put("globalParams1", "Params1");
|
|
|
|
|
|
|
|
|
List<Property> globalParamList = new ArrayList<>();
|
|
|
|
|
|
|
|
|
- Date scheduleTime = DateUtils.parseDate("20191220145900", new String[]{PARAMETER_FORMAT_TIME});
|
|
|
+ Date scheduleTime = DateUtils.stringToDate("2019-12-20 00:00:00");
|
|
|
|
|
|
|
|
|
String result = ParameterUtils.curingGlobalParams(globalParamMap, globalParamList, CommandType.START_CURRENT_TASK_PROCESS, scheduleTime);
|
|
|
Assert.assertNull(result);
|
|
|
- Assert.assertNull(ParameterUtils.curingGlobalParams(null,null,CommandType.START_CURRENT_TASK_PROCESS,null));
|
|
|
- Assert.assertNull(ParameterUtils.curingGlobalParams(globalParamMap,null,CommandType.START_CURRENT_TASK_PROCESS,scheduleTime));
|
|
|
+ Assert.assertNull(ParameterUtils.curingGlobalParams(null, null, CommandType.START_CURRENT_TASK_PROCESS, null));
|
|
|
+ Assert.assertNull(ParameterUtils.curingGlobalParams(globalParamMap, null, CommandType.START_CURRENT_TASK_PROCESS, scheduleTime));
|
|
|
|
|
|
|
|
|
- Property property=new Property("testGlobalParam", Direct.IN, DataType.VARCHAR,"testGlobalParam");
|
|
|
+ Property property = new Property("testGlobalParam", Direct.IN, DataType.VARCHAR, "testGlobalParam");
|
|
|
globalParamList.add(property);
|
|
|
|
|
|
- String result2 = ParameterUtils.curingGlobalParams(null,globalParamList,CommandType.START_CURRENT_TASK_PROCESS,scheduleTime);
|
|
|
+ String result2 = ParameterUtils.curingGlobalParams(null, globalParamList, CommandType.START_CURRENT_TASK_PROCESS, scheduleTime);
|
|
|
Assert.assertEquals(result2, JSONUtils.toJsonString(globalParamList));
|
|
|
|
|
|
- String result3 = ParameterUtils.curingGlobalParams(globalParamMap,globalParamList,CommandType.START_CURRENT_TASK_PROCESS,null);
|
|
|
+ String result3 = ParameterUtils.curingGlobalParams(globalParamMap, globalParamList, CommandType.START_CURRENT_TASK_PROCESS, null);
|
|
|
Assert.assertEquals(result3, JSONUtils.toJsonString(globalParamList));
|
|
|
|
|
|
String result4 = ParameterUtils.curingGlobalParams(globalParamMap, globalParamList, CommandType.START_CURRENT_TASK_PROCESS, scheduleTime);
|
|
|
Assert.assertEquals(result4, JSONUtils.toJsonString(globalParamList));
|
|
|
|
|
|
|
|
|
- globalParamMap.put("bizDate","${system.biz.date}");
|
|
|
- globalParamMap.put("b1zCurdate","${system.biz.curdate}");
|
|
|
-
|
|
|
+ globalParamMap.put("bizDate", "${system.biz.date}");
|
|
|
+ globalParamMap.put("b1zCurdate", "${system.biz.curdate}");
|
|
|
|
|
|
- Property property2=new Property("testParamList1", Direct.IN, DataType.VARCHAR,"testParamList");
|
|
|
- Property property3=new Property("testParamList2", Direct.IN, DataType.VARCHAR,"{testParamList1}");
|
|
|
- Property property4=new Property("testParamList3", Direct.IN, DataType.VARCHAR,"${b1zCurdate}");
|
|
|
+ Property property2 = new Property("testParamList1", Direct.IN, DataType.VARCHAR, "testParamList");
|
|
|
+ Property property3 = new Property("testParamList2", Direct.IN, DataType.VARCHAR, "{testParamList1}");
|
|
|
+ Property property4 = new Property("testParamList3", Direct.IN, DataType.VARCHAR, "${b1zCurdate}");
|
|
|
|
|
|
globalParamList.add(property2);
|
|
|
globalParamList.add(property3);
|
|
@@ -123,9 +140,9 @@ public class ParameterUtilsTest {
|
|
|
@Test
|
|
|
public void testHandleEscapes() throws Exception {
|
|
|
Assert.assertNull(ParameterUtils.handleEscapes(null));
|
|
|
- Assert.assertEquals("",ParameterUtils.handleEscapes(""));
|
|
|
- Assert.assertEquals("test Parameter",ParameterUtils.handleEscapes("test Parameter"));
|
|
|
- Assert.assertEquals("////%test////%Parameter",ParameterUtils.handleEscapes("%test%Parameter"));
|
|
|
+ Assert.assertEquals("", ParameterUtils.handleEscapes(""));
|
|
|
+ Assert.assertEquals("test Parameter", ParameterUtils.handleEscapes("test Parameter"));
|
|
|
+ Assert.assertEquals("////%test////%Parameter", ParameterUtils.handleEscapes("%test%Parameter"));
|
|
|
}
|
|
|
|
|
|
}
|