private void clearSelfPipelineNameInFetchTask(PipelineConfig clone) { for (StageConfig stage : clone) { for (JobConfig job : stage.getJobs()) { for (Task task : job.getTasks()) { if (task instanceof FetchTask) { FetchTask fetchTask = (FetchTask) task; if (this.name().equals(fetchTask.getTargetPipelineName())) { fetchTask.setPipelineName(new CaseInsensitiveString("")); } } } } } }
@Test public void shouldUpdateItsAttributesFromAttributeMap() throws Exception { FetchTask fetchTask = new FetchTask(); fetchTask.setConfigAttributes( m(FetchTask.PIPELINE_NAME, "pipeline_foo", FetchTask.STAGE, "stage_bar", FetchTask.JOB, "job_baz", FetchTask.SRC, "src_file", FetchTask.DEST, "dest_dir", FetchTask.IS_SOURCE_A_FILE, "1")); assertThat(fetchTask.getTargetPipelineName(), is(new CaseInsensitiveString("pipeline_foo"))); assertThat(fetchTask.getStage(), is(new CaseInsensitiveString("stage_bar"))); assertThat(fetchTask.getJob().toString(), is("job_baz")); assertThat(fetchTask.getSrcfile(), is("src_file")); assertThat(fetchTask.getSrcdir(), is(nullValue())); assertThat(fetchTask.getDest(), is("dest_dir")); fetchTask.setConfigAttributes(m(FetchTask.PIPELINE_NAME, "", FetchTask.STAGE, "", FetchTask.JOB, "", FetchTask.SRC, "", FetchTask.IS_SOURCE_A_FILE, "1", FetchTask.DEST, "")); assertThat(fetchTask.getTargetPipelineName(), is(new CaseInsensitiveString(""))); assertThat(fetchTask.getStage(), is(new CaseInsensitiveString(""))); assertThat(fetchTask.getJob().toString(), is("")); assertThat(fetchTask.getSrcfile(), is(nullValue())); assertThat(fetchTask.getSrcdir(), is(nullValue())); assertThat(fetchTask.getDest(), is("")); }
@Test public void shouldNotUpdateItsAttributesFromAttributeMapWhenKeysNotPresent() throws Exception { FetchTask fetchTask = new FetchTask(); fetchTask.setConfigAttributes( m(FetchTask.PIPELINE_NAME, "pipeline_foo", FetchTask.STAGE, "stage_bar", FetchTask.JOB, "job_baz", FetchTask.SRC, "src_file", FetchTask.IS_SOURCE_A_FILE, "1", FetchTask.SRC, "src_file", FetchTask.DEST, "dest_dir")); fetchTask.setConfigAttributes(m()); assertThat(fetchTask.getTargetPipelineName(), is(new CaseInsensitiveString("pipeline_foo"))); assertThat(fetchTask.getStage(), is(new CaseInsensitiveString("stage_bar"))); assertThat(fetchTask.getJob().toString(), is("job_baz")); assertThat(fetchTask.getSrcfile(), is("src_file")); assertThat(fetchTask.getSrcdir(), is(nullValue())); assertThat(fetchTask.getDest(), is("dest_dir")); }
@Test public void shouldReturnDuplicateWithPipelineNameEmptyIfFetchArtifactTaskIsFetchingFromSamePipeline() { PipelineConfig pipelineConfig = PipelineConfigMother.createPipelineConfig("somePipeline", "stage", "job"); StageConfig stageConfig = pipelineConfig.get(0); JobConfig jobConfig = stageConfig.getJobs().get(0); Tasks originalTasks = jobConfig.getTasks(); originalTasks.add(new FetchTask(pipelineConfig.name(), stageConfig.name(), jobConfig.name(), "src", "dest")); originalTasks.add(new FetchTask(new CaseInsensitiveString("some_other_pipeline"), stageConfig.name(), jobConfig.name(), "src", "dest")); PipelineConfig clone = pipelineConfig.duplicate(); Tasks clonedTasks = clone.get(0).getJobs().get(0).getTasks(); assertThat(((FetchTask) clonedTasks.get(0)).getTargetPipelineName(), is(new CaseInsensitiveString(""))); assertThat(((FetchTask) clonedTasks.get(1)).getTargetPipelineName(), is(new CaseInsensitiveString("some_other_pipeline"))); assertThat(((FetchTask) originalTasks.get(0)).getTargetPipelineName(), is(pipelineConfig.name())); }