@Override protected PipelineConfigs createWithPipelines(PipelineConfig first, PipelineConfig second) { BasicPipelineConfigs pipelineConfigsLocal = new BasicPipelineConfigs(first, second); pipelineConfigsLocal.setOrigin(new FileConfigOrigin()); BasicPipelineConfigs pipelineConfigsRemote = new BasicPipelineConfigs(); pipelineConfigsRemote.setOrigin(new RepoConfigOrigin()); return new MergePipelineConfigs(pipelineConfigsLocal,pipelineConfigsRemote); }
@Override protected PipelineConfigs createWithPipeline(PipelineConfig pipelineConfig) { BasicPipelineConfigs pipelineConfigsLocal = new BasicPipelineConfigs(pipelineConfig); pipelineConfigsLocal.setOrigin(new FileConfigOrigin()); BasicPipelineConfigs pipelineConfigsRemote = new BasicPipelineConfigs(); pipelineConfigsRemote.setOrigin(new RepoConfigOrigin()); return new MergePipelineConfigs(pipelineConfigsRemote,pipelineConfigsLocal); }
@Override protected PipelineConfigs createEmpty() { BasicPipelineConfigs pipelineConfigs = new BasicPipelineConfigs(); pipelineConfigs.setOrigin(new FileConfigOrigin()); return new MergePipelineConfigs(pipelineConfigs); }
@Test public void shouldReturnFilePartForGetLocalWhenHasRemoteAndFilePart() { BasicPipelineConfigs filePart = new BasicPipelineConfigs(); filePart.setOrigin(new FileConfigOrigin()); BasicPipelineConfigs secondPart = new BasicPipelineConfigs(); secondPart.setOrigin(new RepoConfigOrigin()); MergePipelineConfigs merge = new MergePipelineConfigs(filePart, secondPart); assertThat(merge.getLocal(), Matchers.<PipelineConfigs>is(filePart)); }
@Test public void shouldReturnNullForGetLocalWhenOnlyRemoteParts() { BasicPipelineConfigs firstPart = new BasicPipelineConfigs(); firstPart.setOrigin(new RepoConfigOrigin()); BasicPipelineConfigs secondPart = new BasicPipelineConfigs(); secondPart.setOrigin(new RepoConfigOrigin()); MergePipelineConfigs merge = new MergePipelineConfigs(firstPart, secondPart); assertNull(merge.getLocal()); }
@Test public void shouldReturnOriginAsASumOfAllOrigins() { BasicPipelineConfigs fileConfigs = new BasicPipelineConfigs(PipelineConfigMother.pipelineConfig("pipeline1")); fileConfigs.setOrigin(new FileConfigOrigin()); BasicPipelineConfigs remoteConfigs = new BasicPipelineConfigs(PipelineConfigMother.pipelineConfig("pipeline2")); remoteConfigs.setOrigin(new RepoConfigOrigin()); PipelineConfigs group = new MergePipelineConfigs(fileConfigs, remoteConfigs); ConfigOrigin allOrigins = group.getOrigin(); assertThat(allOrigins instanceof MergeConfigOrigin,is(true)); MergeConfigOrigin mergeConfigOrigin = (MergeConfigOrigin)allOrigins; assertThat(mergeConfigOrigin.size(),is(2)); assertThat(mergeConfigOrigin.contains(new FileConfigOrigin()),is(true)); assertThat(mergeConfigOrigin.contains(new RepoConfigOrigin()),is(true)); }
@Test public void shouldReturnTrueIfAuthorizationIsNotDefined_When2ConfigParts() { BasicPipelineConfigs filePart = new BasicPipelineConfigs(); filePart.setOrigin(new FileConfigOrigin()); MergePipelineConfigs merge = new MergePipelineConfigs(new BasicPipelineConfigs(), filePart); assertThat(merge.hasViewPermission(new CaseInsensitiveString("anyone"), null), is(true)); } @Test
@Test public void shouldReturnTrueForOperatePermissionIfAuthorizationIsNotDefined_When2ConfigParts() { BasicPipelineConfigs filePart = new BasicPipelineConfigs(); filePart.setOrigin(new FileConfigOrigin()); assertThat(new MergePipelineConfigs(filePart, new BasicPipelineConfigs()) .hasOperatePermission(new CaseInsensitiveString("anyone"), null), is(true)); }
@Test public void shouldReturnFirstEditablePartWhenExists(){ PipelineConfig pipe1 = PipelineConfigMother.pipelineConfig("pipeline1"); BasicPipelineConfigs part1 = new BasicPipelineConfigs(pipe1); part1.setOrigin(new FileConfigOrigin()); MergePipelineConfigs group = new MergePipelineConfigs( part1, new BasicPipelineConfigs()); assertThat(group.getFirstEditablePartOrNull(), Matchers.<PipelineConfigs>is(part1)); }
@Test public void shouldAddPipelineAtIndex_WhenWouldLandInEditablePart() { PipelineConfig pipeline0 = PipelineConfigMother.pipelineConfig("pipeline0"); PipelineConfig pipeline1 = PipelineConfigMother.pipelineConfig("pipeline1"); PipelineConfig pipeline3 = PipelineConfigMother.pipelineConfig("pipeline3"); PipelineConfig pipeline5 = PipelineConfigMother.pipelineConfig("pipeline5"); PipelineConfig pipeline2 = PipelineConfigMother.pipelineConfig("pipeline2"); PipelineConfig pipeline4 = PipelineConfigMother.pipelineConfig("pipeline4"); BasicPipelineConfigs pipelineConfigsMiddle = new BasicPipelineConfigs(pipeline3); pipelineConfigsMiddle.setOrigin(new FileConfigOrigin()); BasicPipelineConfigs bottom = new BasicPipelineConfigs(pipeline0, pipeline1, pipeline2); BasicPipelineConfigs top = new BasicPipelineConfigs(pipeline4, pipeline5); bottom.setOrigin(new RepoConfigOrigin()); top.setOrigin(new RepoConfigOrigin()); PipelineConfigs group = new MergePipelineConfigs( bottom, pipelineConfigsMiddle, top); PipelineConfig p1 = PipelineConfigMother.pipelineConfig("pipelineToInsert"); group.add(3,p1); assertThat(group, hasItem(p1)); assertThat(pipelineConfigsMiddle, hasItem(p1)); } }
@Test public void shouldReturnPartWithPipelineWhenExists(){ PipelineConfig pipe1 = PipelineConfigMother.pipelineConfig("pipeline1"); BasicPipelineConfigs part1 = new BasicPipelineConfigs(pipe1); part1.setOrigin(new FileConfigOrigin()); MergePipelineConfigs group = new MergePipelineConfigs( part1, new BasicPipelineConfigs(PipelineConfigMother.pipelineConfig("pipeline2"))); assertThat(group.getPartWithPipeline(new CaseInsensitiveString("pipeline1")), Matchers.<PipelineConfigs>is(part1)); }
@Test public void shouldAddPipelineToFirstEditablePartWhenExists(){ PipelineConfig pipe1 = PipelineConfigMother.pipelineConfig("pipeline1"); BasicPipelineConfigs part1 = new BasicPipelineConfigs(pipe1); part1.setOrigin(new FileConfigOrigin()); MergePipelineConfigs group = new MergePipelineConfigs( part1, new BasicPipelineConfigs()); PipelineConfig pipeline2 = PipelineConfigMother.pipelineConfig("pipeline2"); group.add(pipeline2); assertThat(group.contains(pipeline2),is(true)); }
@Test public void shouldReturnAuthorizationFromFileIfDefined_When2ConfigParts() { BasicPipelineConfigs part1 = new BasicPipelineConfigs(); Authorization fileAuth = new Authorization(); part1.setAuthorization(fileAuth); part1.setOrigin(new FileConfigOrigin()); BasicPipelineConfigs part2 = new BasicPipelineConfigs(); part2.setAuthorization(new Authorization()); MergePipelineConfigs merge = new MergePipelineConfigs(part1,part2); assertThat(merge.getAuthorization(),is(fileAuth)); }
@Test public void shouldAddToFirstEditableWhenAddToTop() { BasicPipelineConfigs filePart = new BasicPipelineConfigs(PipelineConfigMother.pipelineConfig("pipeline2")); filePart.setOrigin(new FileConfigOrigin()); PipelineConfigs group = new MergePipelineConfigs(new BasicPipelineConfigs(PipelineConfigMother.pipelineConfig("pipeline1")),filePart); group.addToTop(PipelineConfigMother.pipelineConfig("pipeline3")); assertThat(filePart.hasPipeline(new CaseInsensitiveString("pipeline3")),is(true)); assertThat(group.hasPipeline(new CaseInsensitiveString("pipeline3")),is(true)); }
@Test public void addPipeline_shouldAddPipelineToMain() { pipelines = new BasicPipelineConfigs("group_main", new Authorization(), PipelineConfigMother.pipelineConfig("pipe1")); pipelines.setOrigin(new FileConfigOrigin()); BasicCruiseConfig mainCruiseConfig = new BasicCruiseConfig(pipelines); cruiseConfig = new BasicCruiseConfig(mainCruiseConfig, PartialConfigMother.withPipeline("pipe2")); cruiseConfig.addPipeline("group_main", PipelineConfigMother.pipelineConfig("pipe3")); assertThat(mainCruiseConfig.hasPipelineNamed(new CaseInsensitiveString("pipe3")), is(true)); assertThat(cruiseConfig.hasPipelineNamed(new CaseInsensitiveString("pipe3")), is(true)); }
@Test public void addPipelineWithoutValidation_shouldAddPipelineToMain() { pipelines = new BasicPipelineConfigs("group_main", new Authorization(), PipelineConfigMother.pipelineConfig("pipe1")); pipelines.setOrigin(new FileConfigOrigin()); BasicCruiseConfig mainCruiseConfig = new BasicCruiseConfig(pipelines); cruiseConfig = new BasicCruiseConfig(mainCruiseConfig, PartialConfigMother.withPipeline("pipe2")); cruiseConfig.addPipelineWithoutValidation("group_main", PipelineConfigMother.pipelineConfig("pipe3")); assertThat(mainCruiseConfig.hasPipelineNamed(new CaseInsensitiveString("pipe3")), is(true)); assertThat(cruiseConfig.hasPipelineNamed(new CaseInsensitiveString("pipe3")), is(true)); }
@Test public void shouldApplyChangesToPipelineWhenPartEditable() { BasicPipelineConfigs filePart = new BasicPipelineConfigs(PipelineConfigMother.pipelineConfig("pipeline1")); filePart.setOrigin(new FileConfigOrigin()); PipelineConfigs group = new MergePipelineConfigs(filePart); PipelineConfig pipelineConfig = (PipelineConfig) group.get(0).clone(); pipelineConfig.setLabelTemplate("blah"); group.update(group.getGroup(), pipelineConfig, "pipeline1"); assertThat(group.get(0).getLabelTemplate(), is("blah")); }
@Test public void shouldAddPipelineToMain() { pipelines = new BasicPipelineConfigs("group_main", new Authorization(), PipelineConfigMother.pipelineConfig("pipe1")); pipelines.setOrigin(new FileConfigOrigin()); BasicCruiseConfig mainCruiseConfig = new BasicCruiseConfig(pipelines); cruiseConfig = new BasicCruiseConfig(mainCruiseConfig, PartialConfigMother.withPipeline("pipe2")); cruiseConfig.addPipeline("group_main", PipelineConfigMother.pipelineConfig("pipe3")); assertThat(mainCruiseConfig.hasPipelineNamed(new CaseInsensitiveString("pipe3")), is(true)); assertThat(cruiseConfig.hasPipelineNamed(new CaseInsensitiveString("pipe3")), is(true)); }
@Test public void shouldSetAuthorizationInFile() { BasicPipelineConfigs filePart = new BasicPipelineConfigs(); filePart.setOrigin(new FileConfigOrigin()); MergePipelineConfigs merge = new MergePipelineConfigs(filePart,new BasicPipelineConfigs()); Authorization auth = new Authorization(new AdminsConfig(new AdminUser(new CaseInsensitiveString("buddy")))); merge.setAuthorization(auth); assertThat(filePart.getAuthorization(),is(auth)); }
@Test public void shouldReturnFalseIfViewPermissionIsNotDefined_When2ConfigParts() { BasicPipelineConfigs filePart = new BasicPipelineConfigs(PipelineConfigMother.pipelineConfig("pipeline3")); filePart.setOrigin(new FileConfigOrigin()); PipelineConfigs group = new MergePipelineConfigs( new BasicPipelineConfigs(PipelineConfigMother.pipelineConfig("pipeline1")), new BasicPipelineConfigs(PipelineConfigMother.pipelineConfig("pipeline2")),filePart); group.getAuthorization().getOperationConfig().add(new AdminUser(new CaseInsensitiveString("jez"))); assertThat(group.hasViewPermission(new CaseInsensitiveString("jez"), null), is(false)); }