@ -25,9 +25,12 @@ import org.apache.dolphinscheduler.common.Constants;
import org.apache.dolphinscheduler.common.enums.CommandType ;
import org.apache.dolphinscheduler.common.enums.Flag ;
import org.apache.dolphinscheduler.common.enums.WarningType ;
import org.apache.dolphinscheduler.common.model.TaskNode ;
import org.apache.dolphinscheduler.common.task.conditions.ConditionsParameters ;
import org.apache.dolphinscheduler.common.utils.DateUtils ;
import org.apache.dolphinscheduler.common.utils.JSONUtils ;
import org.apache.dolphinscheduler.dao.entity.Command ;
import org.apache.dolphinscheduler.dao.entity.ProcessData ;
import org.apache.dolphinscheduler.dao.entity.ProcessDefinition ;
import org.apache.dolphinscheduler.dao.entity.ProcessInstance ;
import org.apache.dolphinscheduler.dao.entity.ProcessInstanceMap ;
@ -335,4 +338,108 @@ public class ProcessServiceTest {
processService . recurseFindSubProcessId ( parentId , ids ) ;
}
@Test
public void testChangeJson ( ) {
ProcessData oldProcessData = new ProcessData ( ) ;
ConditionsParameters conditionsParameters = new ConditionsParameters ( ) ;
ArrayList < TaskNode > tasks = new ArrayList < > ( ) ;
TaskNode taskNode = new TaskNode ( ) ;
TaskNode taskNode11 = new TaskNode ( ) ;
TaskNode taskNode111 = new TaskNode ( ) ;
ArrayList < String > successNode = new ArrayList < > ( ) ;
ArrayList < String > faildNode = new ArrayList < > ( ) ;
taskNode . setName ( "bbb" ) ;
taskNode . setType ( "SHELL" ) ;
taskNode . setId ( "222" ) ;
taskNode11 . setName ( "vvv" ) ;
taskNode11 . setType ( "CONDITIONS" ) ;
taskNode11 . setId ( "444" ) ;
successNode . add ( "bbb" ) ;
faildNode . add ( "ccc" ) ;
taskNode111 . setName ( "ccc" ) ;
taskNode111 . setType ( "SHELL" ) ;
taskNode111 . setId ( "333" ) ;
conditionsParameters . setSuccessNode ( successNode ) ;
conditionsParameters . setFailedNode ( faildNode ) ;
taskNode11 . setConditionResult ( conditionsParameters . getConditionResult ( ) ) ;
tasks . add ( taskNode ) ;
tasks . add ( taskNode11 ) ;
tasks . add ( taskNode111 ) ;
oldProcessData . setTasks ( tasks ) ;
ProcessData newProcessData = new ProcessData ( ) ;
ConditionsParameters conditionsParameters2 = new ConditionsParameters ( ) ;
TaskNode taskNode2 = new TaskNode ( ) ;
TaskNode taskNode22 = new TaskNode ( ) ;
TaskNode taskNode222 = new TaskNode ( ) ;
ArrayList < TaskNode > tasks2 = new ArrayList < > ( ) ;
ArrayList < String > successNode2 = new ArrayList < > ( ) ;
ArrayList < String > faildNode2 = new ArrayList < > ( ) ;
taskNode2 . setName ( "bbbchange" ) ;
taskNode2 . setType ( "SHELL" ) ;
taskNode2 . setId ( "222" ) ;
taskNode22 . setName ( "vv" ) ;
taskNode22 . setType ( "CONDITIONS" ) ;
taskNode22 . setId ( "444" ) ;
successNode2 . add ( "bbb" ) ;
faildNode2 . add ( "ccc" ) ;
taskNode222 . setName ( "ccc" ) ;
taskNode222 . setType ( "SHELL" ) ;
taskNode222 . setId ( "333" ) ;
conditionsParameters2 . setSuccessNode ( successNode2 ) ;
conditionsParameters2 . setFailedNode ( faildNode2 ) ;
taskNode22 . setConditionResult ( conditionsParameters2 . getConditionResult ( ) ) ;
tasks2 . add ( taskNode2 ) ;
tasks2 . add ( taskNode22 ) ;
tasks2 . add ( taskNode222 ) ;
newProcessData . setTasks ( tasks2 ) ;
ProcessData exceptProcessData = new ProcessData ( ) ;
ConditionsParameters conditionsParameters3 = new ConditionsParameters ( ) ;
TaskNode taskNode3 = new TaskNode ( ) ;
TaskNode taskNode33 = new TaskNode ( ) ;
TaskNode taskNode333 = new TaskNode ( ) ;
ArrayList < TaskNode > tasks3 = new ArrayList < > ( ) ;
ArrayList < String > successNode3 = new ArrayList < > ( ) ;
ArrayList < String > faildNode3 = new ArrayList < > ( ) ;
taskNode3 . setName ( "bbbchange" ) ;
taskNode3 . setType ( "SHELL" ) ;
taskNode3 . setId ( "222" ) ;
taskNode33 . setName ( "vv" ) ;
taskNode33 . setType ( "CONDITIONS" ) ;
taskNode33 . setId ( "444" ) ;
successNode3 . add ( "bbbchange" ) ;
faildNode3 . add ( "ccc" ) ;
taskNode333 . setName ( "ccc" ) ;
taskNode333 . setType ( "SHELL" ) ;
taskNode333 . setId ( "333" ) ;
conditionsParameters3 . setSuccessNode ( successNode3 ) ;
conditionsParameters3 . setFailedNode ( faildNode3 ) ;
taskNode33 . setConditionResult ( conditionsParameters3 . getConditionResult ( ) ) ;
tasks3 . add ( taskNode3 ) ;
tasks3 . add ( taskNode33 ) ;
tasks3 . add ( taskNode333 ) ;
exceptProcessData . setTasks ( tasks3 ) ;
String expect = JSONUtils . toJsonString ( exceptProcessData ) ;
String oldJson = JSONUtils . toJsonString ( oldProcessData ) ;
Assert . assertEquals ( expect , processService . changeJson ( newProcessData , oldJson ) ) ;
}
}