private PipelineConfigSaveValidationContext(Validatable immediateParent, PipelineConfigSaveValidationContext parentContext) { this.isPipelineBeingCreated = parentContext.isPipelineBeingCreated(); this.groupName = parentContext.groupName; this.immediateParent = immediateParent; this.parentContext = parentContext; if (immediateParent instanceof BasicCruiseConfig) { this.cruiseConfig = (BasicCruiseConfig) immediateParent; } else if (parentContext.cruiseConfig != null) { this.cruiseConfig = parentContext.cruiseConfig; } if (immediateParent instanceof PipelineConfig) { this.pipeline = (PipelineConfig) immediateParent; } else if (parentContext.pipeline != null) { this.pipeline = parentContext.pipeline; } if (immediateParent instanceof JobConfig) { this.job = (JobConfig) immediateParent; } else if (parentContext.getJob() != null) { this.job = parentContext.job; } if (immediateParent instanceof StageConfig) { this.stage = (StageConfig) immediateParent; } else if (parentContext.stage != null) { this.stage = parentContext.stage; } this.pipelineBeingValidated = parentContext.pipelineBeingValidated; if (parentContext.pipelineBeingValidated == null) { this.pipelineBeingValidated = this.pipeline; } }
@Test public void shouldCreatePipelineValidationContext() { assertThat(pipelineContext.getPipeline(), is(pipelineConfig)); assertThat(pipelineContext.getStage(), is(nullValue())); assertThat(pipelineContext.getJob(), is(nullValue())); }
@Test public void shouldCreateStageValidationContextBasedOnParent() { StageConfig stageConfig = mock(StageConfig.class); PipelineConfigSaveValidationContext stageContext = PipelineConfigSaveValidationContext.forChain(true, "group", pipelineConfig, stageConfig); assertThat(stageContext.getPipeline(), is(pipelineConfig)); assertThat(stageContext.getStage(), is(stageConfig)); assertThat(stageContext.getJob(), is(nullValue())); }
@Test public void shouldCreateJobValidationContextBasedOnParent() { StageConfig stageConfig = mock(StageConfig.class); JobConfig jobConfig = mock(JobConfig.class); PipelineConfigSaveValidationContext jobContext = PipelineConfigSaveValidationContext.forChain(true, "group", pipelineConfig, stageConfig, jobConfig); assertThat(jobContext.getPipeline(), is(pipelineConfig)); assertThat(jobContext.getStage(), is(stageConfig)); assertThat(jobContext.getJob(), is(jobConfig)); }