@Test public void shouldSetPrimitiveAttributesForExecTask() { Map hashMap = new HashMap(); hashMap.put(OnCancelConfig.ON_CANCEL_OPTIONS, "exec"); Map valueMap = new HashMap(); valueMap.put(ExecTask.COMMAND, "ls"); valueMap.put(ExecTask.ARGS, "blah"); valueMap.put(ExecTask.WORKING_DIR, "pwd"); hashMap.put(OnCancelConfig.EXEC_ON_CANCEL, valueMap); hashMap.put(OnCancelConfig.ANT_ON_CANCEL, new HashMap()); ExecTask execTask = new ExecTask(); when(taskFactory.taskInstanceFor(execTask.getTaskType())).thenReturn(execTask); OnCancelConfig cancelConfig = OnCancelConfig.create(hashMap, taskFactory); assertThat(cancelConfig.getTask(), is(new ExecTask("ls", "blah", "pwd"))); }
@Test public void shouldKnowTheTypeOfExecTask() { assertThat(new ExecTask().getTaskType(), is("exec")); assertThat(new FetchTask().getTaskType(), is("fetch")); }
@Test public void shouldSetOnCancelExecTask() { AbstractTask task = new ExecTask(); Map onCancelMapAttrib = new HashMap(); onCancelMapAttrib.put(ExecTask.COMMAND, "sudo"); onCancelMapAttrib.put(ExecTask.ARGS, "ls -la"); onCancelMapAttrib.put(ExecTask.WORKING_DIR, "working_dir"); onCancelMapAttrib.put(AbstractTask.RUN_IF_CONFIGS_ANY, "1"); onCancelMapAttrib.put(AbstractTask.RUN_IF_CONFIGS_FAILED, "1"); onCancelMapAttrib.put(AbstractTask.RUN_IF_CONFIGS_PASSED, "1"); Map onCancelConfigAttributes = new HashMap(); onCancelConfigAttributes.put(OnCancelConfig.EXEC_ON_CANCEL, onCancelMapAttrib); onCancelConfigAttributes.put(OnCancelConfig.ON_CANCEL_OPTIONS, "exec"); Map actualTaskAttributes = new HashMap(); actualTaskAttributes.put(AbstractTask.ON_CANCEL_CONFIG, onCancelConfigAttributes); actualTaskAttributes.put(AbstractTask.HAS_CANCEL_TASK, "1"); ExecTask execTask = new ExecTask(); when(taskFactory.taskInstanceFor(execTask.getTaskType())).thenReturn(execTask); task.setConfigAttributes(actualTaskAttributes, taskFactory); assertThat(task.hasCancelTask(), is(true)); ExecTask expected = new ExecTask("sudo", "ls -la", "working_dir"); expected.getConditions().add(RunIfConfig.ANY); expected.getConditions().add(RunIfConfig.FAILED); expected.getConditions().add(RunIfConfig.PASSED); assertThat(task.cancelTask(), is(expected)); }
@Test public void shouldCopyAttributeValuesFromAttributeMap() throws Exception { config = new JobConfig();//override the setup mock TaskFactory taskFactory = mock(TaskFactory.class); ExecTask emptyExecTask = new ExecTask(); when(taskFactory.taskInstanceFor(emptyExecTask.getTaskType())).thenReturn(emptyExecTask); config.setConfigAttributes(DataStructureUtils.m(JobConfig.NAME, "foo-job", JobConfig.TASKS, DataStructureUtils.m(Tasks.TASK_OPTIONS, "exec", "exec", DataStructureUtils.m(Task.TASK_TYPE, "exec", ExecTask.COMMAND, "ls", ExecTask.ARGS, "-la", ExecTask.WORKING_DIR, "/tmp"))), taskFactory); assertThat(config.name(), is(new CaseInsensitiveString("foo-job"))); assertThat(config.getTasks().get(0), is(new ExecTask("ls", "-la", "/tmp"))); assertThat(config.getTasks().size(), is(1)); }