public void setConfigAttributes(Object attributes) { setConfigAttributes(attributes, null); }
public void setConfigAttributes(Object attributes, TaskFactory taskFactory) { this.clear(); if (attributes != null) { for (Object attribute : (List) attributes) { JobConfig job = new JobConfig(); job.setConfigAttributes(attribute, taskFactory); this.addJobWithoutValidityAssertion(job); } } }
@Test public void shouldPopulateEnvironmentVariablesFromAttributeMap() { JobConfig jobConfig = new JobConfig(); HashMap map = new HashMap(); HashMap valueHashMap = new HashMap(); valueHashMap.put("name", "FOO"); valueHashMap.put("value", "BAR"); map.put(JobConfig.ENVIRONMENT_VARIABLES, valueHashMap); EnvironmentVariablesConfig mockEnvironmentVariablesConfig = mock(EnvironmentVariablesConfig.class); jobConfig.setVariables(mockEnvironmentVariablesConfig); jobConfig.setConfigAttributes(map); verify(mockEnvironmentVariablesConfig).setConfigAttributes(valueHashMap); }
@Test public void shouldPopulateArtifactPlansFromAttributeMap() { HashMap map = new HashMap(); HashMap valueHashMap = new HashMap(); valueHashMap.put("src", "dest"); valueHashMap.put("src1", "dest1"); map.put(JobConfig.ARTIFACT_CONFIGS, valueHashMap); ArtifactConfigs mockArtifactConfigs = mock(ArtifactConfigs.class); JobConfig jobConfig = new JobConfig(new CaseInsensitiveString("job-name"), new ResourceConfigs(), mockArtifactConfigs); jobConfig.setConfigAttributes(map); verify(mockArtifactConfigs).setConfigAttributes(valueHashMap); }
@Test public void shouldNotSetJobNameIfNotGiven() throws Exception { JobConfig config = new JobConfig("some-job-name"); config.setConfigAttributes(m()); assertThat(config.name(), is(new CaseInsensitiveString("some-job-name"))); config.setConfigAttributes(m(JobConfig.NAME, null)); assertThat(config.name(), is(nullValue())); }
@Test public void shouldClearTimeoutIfSubmittedWithEmptyValue() throws Exception { config.setConfigAttributes( m(JobConfig.NAME, "foo-job", "timeoutType", JobConfig.OVERRIDE_TIMEOUT, JobConfig.TIMEOUT, "", JobConfig.TASKS, m(Tasks.TASK_OPTIONS, "exec", "exec", m(Task.TASK_TYPE, "exec", ExecTask.COMMAND, "ls", ExecTask.ARGS, "-la", ExecTask.WORKING_DIR, "/tmp"))) ); assertThat(config.getTimeout(), is(nullValue())); }
@Test public void shouldSetTimeoutToNullIfSubmittedWithDefault() throws Exception { config.setConfigAttributes(m(JobConfig.NAME, "foo-job", "timeoutType", JobConfig.DEFAULT_TIMEOUT, JobConfig.TIMEOUT, "", JobConfig.TASKS, m(Tasks.TASK_OPTIONS, "exec", "exec", m(Task.TASK_TYPE, "exec", ExecTask.COMMAND, "ls", ExecTask.ARGS, "-la", ExecTask.WORKING_DIR, "/tmp")))); assertThat(config.getTimeout(), is(nullValue())); }
@Test public void shouldResetJobRunTypeCorrectly() { HashMap map1 = new HashMap(); map1.put(JobConfig.RUN_TYPE, JobConfig.RUN_MULTIPLE_INSTANCE); map1.put(JobConfig.RUN_INSTANCE_COUNT, "10"); JobConfig jobConfig = new JobConfig(); jobConfig.setConfigAttributes(map1); assertThat(jobConfig.getRunInstanceCountValue(), is(10)); assertThat(jobConfig.isRunMultipleInstanceType(), is(true)); assertThat(jobConfig.isRunOnAllAgents(), is(false)); // should not reset value when correct key not present HashMap map2 = new HashMap(); jobConfig.setConfigAttributes(map2); assertThat(jobConfig.getRunInstanceCountValue(), is(10)); assertThat(jobConfig.isRunMultipleInstanceType(), is(true)); assertThat(jobConfig.isRunOnAllAgents(), is(false)); // reset value for same job config HashMap map3 = new HashMap(); map3.put(JobConfig.RUN_TYPE, JobConfig.RUN_SINGLE_INSTANCE); jobConfig.setConfigAttributes(map3); assertThat(jobConfig.isRunMultipleInstanceType(), is(false)); assertThat(jobConfig.getRunInstanceCount(), is(nullValue())); assertThat(jobConfig.isRunOnAllAgents(), is(false)); }
@Test public void shouldSetTimeoutIfSpecified() throws Exception { config.setConfigAttributes( m(JobConfig.NAME, "foo-job", "timeoutType", JobConfig.OVERRIDE_TIMEOUT, JobConfig.TIMEOUT, "100", JobConfig.TASKS, m(Tasks.TASK_OPTIONS, "exec", "exec", m(Task.TASK_TYPE, "exec", ExecTask.COMMAND, "ls", ExecTask.ARGS, "-la", ExecTask.WORKING_DIR, "/tmp")))); assertThat(config.getTimeout(), is("100")); }
JobConfig jobConfig1 = new JobConfig(); jobConfig1.setConfigAttributes(map1); JobConfig jobConfig2 = new JobConfig(); jobConfig2.setConfigAttributes(map2); JobConfig jobConfig3 = new JobConfig(); jobConfig3.setConfigAttributes(map3); JobConfig jobConfig4 = new JobConfig(); jobConfig4.setConfigAttributes(map4);
@Test public void shouldSetTimeoutToZeroIfSubmittedWithNever() throws Exception { config.setConfigAttributes(m(JobConfig.NAME, "foo-job", "timeoutType", JobConfig.NEVER_TIMEOUT, JobConfig.TIMEOUT, "100", JobConfig.TASKS, m(Tasks.TASK_OPTIONS, "exec", "exec", m(Task.TASK_TYPE, "exec", ExecTask.COMMAND, "ls", ExecTask.ARGS, "-la", ExecTask.WORKING_DIR, "/tmp")))); assertThat(config.getTimeout(), is("0")); }
@Test public void shouldPopulateResourcesFromAttributeMap() { HashMap map = new HashMap(); String value = "a, b,c ,d,e"; map.put(JobConfig.RESOURCES, value); ResourceConfigs resourceConfigs = new ResourceConfigs(); resourceConfigs.add(new ResourceConfig("z")); JobConfig jobConfig = new JobConfig(new CaseInsensitiveString("job-name"), resourceConfigs, null); jobConfig.setConfigAttributes(map); assertThat(jobConfig.resourceConfigs().size(), is(5)); }
@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)); }
@Test public void shouldNotSetTasksIfNoTasksGiven() throws Exception { config = new JobConfig(); AntTask task = new AntTask(); task.setTarget("hello"); config.addTask(task); config.setConfigAttributes(m()); AntTask taskAfterUpdate = (AntTask) config.getTasks().get(0); assertThat(taskAfterUpdate.getTarget(), is("hello")); assertThat(config.getTasks().size(), is(1)); config.setConfigAttributes(m(JobConfig.TASKS, null)); assertThat(config.getTasks().size(), is(0)); }
@Test public void shouldPopulateTabsFromAttributeMap() { JobConfig jobConfig = new JobConfig("job-name"); jobConfig.setConfigAttributes(m(JobConfig.TABS, a(m(Tab.NAME, "tab1", Tab.PATH, "path1"), m(Tab.NAME, "tab2", Tab.PATH, "path2")))); assertThat(jobConfig.getTabs().size(), is(2)); assertThat(jobConfig.getTabs().get(0).getName(), is("tab1")); assertThat(jobConfig.getTabs().get(1).getName(), is("tab2")); assertThat(jobConfig.getTabs().get(0).getPath(), is("path1")); assertThat(jobConfig.getTabs().get(1).getPath(), is("path2")); }