Browse Source
1. Add ParamUtilsTest. 2. Add a null check in the method convert. 3. Add the UT path to the root pom.pull/2/head
zhukai
5 years ago
committed by
khadgarmage
3 changed files with 134 additions and 0 deletions
@ -0,0 +1,129 @@ |
|||||||
|
/* |
||||||
|
* 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.server.utils; |
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON; |
||||||
|
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.junit.Before; |
||||||
|
import org.junit.Test; |
||||||
|
import org.slf4j.Logger; |
||||||
|
import org.slf4j.LoggerFactory; |
||||||
|
|
||||||
|
import java.util.Date; |
||||||
|
import java.util.HashMap; |
||||||
|
import java.util.Map; |
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals; |
||||||
|
import static org.junit.Assert.assertNull; |
||||||
|
|
||||||
|
/** |
||||||
|
* Test ParamUtils |
||||||
|
*/ |
||||||
|
public class ParamUtilsTest { |
||||||
|
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(ParamUtilsTest.class); |
||||||
|
|
||||||
|
//Define global variables
|
||||||
|
public Map<String, Property> globalParams = new HashMap<>(); |
||||||
|
|
||||||
|
public Map<String, String> globalParamsMap = new HashMap<>(); |
||||||
|
|
||||||
|
public Map<String, Property> localParams = new HashMap<>(); |
||||||
|
|
||||||
|
/** |
||||||
|
* Init params |
||||||
|
* @throws Exception |
||||||
|
*/ |
||||||
|
@Before |
||||||
|
public void setUp() throws Exception { |
||||||
|
|
||||||
|
Property property = new Property(); |
||||||
|
property.setProp("global_param"); |
||||||
|
property.setDirect(Direct.IN); |
||||||
|
property.setType(DataType.VARCHAR); |
||||||
|
property.setValue("${system.biz.date}"); |
||||||
|
globalParams.put("global_param", property); |
||||||
|
|
||||||
|
globalParamsMap.put("global_param", "${system.biz.date}"); |
||||||
|
|
||||||
|
Property localProperty = new Property(); |
||||||
|
localProperty.setProp("local_param"); |
||||||
|
localProperty.setDirect(Direct.IN); |
||||||
|
localProperty.setType(DataType.VARCHAR); |
||||||
|
localProperty.setValue("${global_param}"); |
||||||
|
localParams.put("local_param", localProperty); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Test convert |
||||||
|
*/ |
||||||
|
@Test |
||||||
|
public void testConvert() { |
||||||
|
|
||||||
|
//The expected value
|
||||||
|
String expected = "{\"global_param\":{\"direct\":\"IN\",\"prop\":\"global_param\",\"type\":\"VARCHAR\",\"value\":\"20191229\"},\"local_param\":{\"direct\":\"IN\",\"prop\":\"local_param\",\"type\":\"VARCHAR\",\"value\":\"20191229\"}}"; |
||||||
|
|
||||||
|
//The expected value when globalParams is null but localParams is not null
|
||||||
|
String expected1 = "{\"local_param\":{\"direct\":\"IN\",\"prop\":\"local_param\",\"type\":\"VARCHAR\",\"value\":\"20191229\"}}"; |
||||||
|
|
||||||
|
//Invoke convert
|
||||||
|
Map<String, Property> paramsMap = ParamUtils.convert(globalParams, globalParamsMap, localParams, CommandType.START_PROCESS, new Date()); |
||||||
|
String result = JSON.toJSONString(paramsMap); |
||||||
|
assertEquals(expected, result); |
||||||
|
|
||||||
|
for (Map.Entry<String, Property> entry : paramsMap.entrySet()) { |
||||||
|
|
||||||
|
String key = entry.getKey(); |
||||||
|
Property prop = entry.getValue(); |
||||||
|
logger.info(key + " : " + prop.getValue()); |
||||||
|
} |
||||||
|
|
||||||
|
//Invoke convert with null globalParams
|
||||||
|
Map<String, Property> paramsMap1 = ParamUtils.convert(null, globalParamsMap, localParams, CommandType.START_PROCESS, new Date()); |
||||||
|
String result1 = JSON.toJSONString(paramsMap1); |
||||||
|
assertEquals(expected1, result1); |
||||||
|
|
||||||
|
//Null check, invoke convert with null globalParams and null localParams
|
||||||
|
Map<String, Property> paramsMap2 = ParamUtils.convert(null, globalParamsMap, null, CommandType.START_PROCESS, new Date()); |
||||||
|
assertNull(paramsMap2); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Test the overload method of convert |
||||||
|
*/ |
||||||
|
@Test |
||||||
|
public void testConvert1() { |
||||||
|
|
||||||
|
//The expected value
|
||||||
|
String expected = "{\"global_param\":\"${system.biz.date}\"}"; |
||||||
|
|
||||||
|
//Invoke convert
|
||||||
|
Map<String, String> paramsMap = ParamUtils.convert(globalParams); |
||||||
|
String result = JSON.toJSONString(paramsMap); |
||||||
|
assertEquals(expected, result); |
||||||
|
|
||||||
|
logger.info(result); |
||||||
|
|
||||||
|
//Null check
|
||||||
|
Map<String, String> paramsMap1 = ParamUtils.convert(null); |
||||||
|
assertNull(paramsMap1); |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue