@Override public int size() { int count = 0; for (PipelineConfigs part : this.parts) { count += part.size(); } return count; }
private int getFirstIndexInPart(PipelineConfigs p) { int start =0; for (PipelineConfigs part : this.parts) { int end = start + part.size(); if(part.equals(p)) return start; start = end; } return -1; }
public PipelineConfigs getPartWithIndex(int i) { if(i < 0) throw new IndexOutOfBoundsException(); int start =0; for (PipelineConfigs part : this.parts) { int end = start + part.size(); if(i < end) return part; start = end; } throw new IndexOutOfBoundsException(); } public PipelineConfigs getPartWithIndexForInsert(int i)
@Override public boolean exist(int pipelineIndex) { return pipelineIndex < pipelinesFromAllGroups().size(); }
@Override public int indexOf(PipelineConfig o) { int start =0; for (PipelineConfigs part : this.parts) { int end = start + part.size(); int internalIndex = part.indexOf(o); if(internalIndex > 0) return start + internalIndex; start = end; } return -1; }
@Override public int numberOfPipelines() { return pipelinesFromAllGroups().size(); }
@Override public int numbersOfPipeline(String groupName) { return pipelines(groupName).size(); }
@Override public PipelineConfig get(int i) { if(i < 0) throw new IndexOutOfBoundsException(); int start =0; for (PipelineConfigs part : this.parts) { int end = start + part.size(); if(i < end) return part.get(i - start); start = end; } throw new IndexOutOfBoundsException(); }
@Override public PipelineConfig remove(int i) { if(i < 0) throw new IndexOutOfBoundsException(); int start =0; for (PipelineConfigs part : this.parts) { int end = start + part.size(); if(i < end) return part.remove(i - start); start = end; } throw new IndexOutOfBoundsException(); }
public PipelineConfigs getPartWithIndexForInsert(int i) { if(i < 0) throw new IndexOutOfBoundsException(); int start =0; for (PipelineConfigs part : this.parts) { int end = start + part.size(); if(i < end) return part; start = end; } return this.parts.get(this.parts.size() -1); }
@Override public PipelineConfig set(int i, PipelineConfig pipelineConfig) { if(i < 0) throw new IndexOutOfBoundsException(); int start =0; for (PipelineConfigs part : this.parts) { int end = start + part.size(); if(i < end) { if(isEditable(part)) { return part.set(i - start, pipelineConfig); } else { throw bomb(String.format("Cannot edit pipeline %s", pipelineConfig.name())); } } start = end; } throw new IndexOutOfBoundsException(); }
private int getIndex(String pipelineName) { CaseInsensitiveString caseName = new CaseInsensitiveString(pipelineName); int start =0; for (PipelineConfigs part : this.parts) { int end = start + part.size(); if(part.hasPipeline(caseName)) { int internalIndex = part.indexOf(part.findBy(caseName)); return start + internalIndex; } start = end; } return -1; }
@Test public void shouldLoadDirectoryWithOnePipelineGroup() throws Exception { GoConfigMother mother = new GoConfigMother(); PipelineConfigs group1 = mother.cruiseConfigWithOnePipelineGroup().getGroups().get(0); helper.addFileWithPipelineGroup("group1.gocd.xml", group1); PartialConfig part = xmlPartialProvider.load(tmpFolder, mock(PartialConfigLoadContext.class)); PipelineConfigs groupRead = part.getGroups().get(0); assertThat(groupRead,is(group1)); assertThat(groupRead.size(),is(group1.size())); assertThat(groupRead.get(0),is(group1.get(0))); }
@Test public void shouldParseFileWithOnePipelineGroup() throws Exception { GoConfigMother mother = new GoConfigMother(); PipelineConfigs group1 = mother.cruiseConfigWithOnePipelineGroup().getGroups().get(0); File file = helper.addFileWithPipelineGroup("group1.gocd.xml", group1); PartialConfig part = xmlPartialProvider.parseFile(file); PipelineConfigs groupRead = part.getGroups().get(0); assertThat(groupRead,is(group1)); assertThat(groupRead.size(),is(group1.size())); assertThat(groupRead.get(0),is(group1.get(0))); } @Test
@Test public void shouldReturnSelfForGetLocalWhenOriginIsNull() { PipelineConfigs pipelineConfigs = createEmpty(); assertThat(pipelineConfigs.getLocal().size(), is(0)); assertSame(pipelineConfigs,pipelineConfigs.getLocal()); } @Test
@Test public void shouldRemovePipelineFromTheGroup() throws Exception { PipelineConfig pipelineConfig = createPipelineConfig("pipeline1", "stage1"); PipelineConfigs defaultGroup = createGroup("defaultGroup", pipelineConfig); PipelineGroups pipelineGroups = new PipelineGroups(defaultGroup); assertThat(pipelineGroups.size(), is(1)); pipelineGroups.deletePipeline(pipelineConfig); assertThat(pipelineGroups.size(), is(1)); assertThat(defaultGroup.size(), is(0)); }
@Test public void shouldRemovePipeline() { PipelineConfig p0 = PipelineConfigMother.pipelineConfig("pipeline0"); PipelineConfigs group = createWithPipeline(p0); PipelineConfig p1 = PipelineConfigMother.pipelineConfig("pipeline1"); group.add(1,p1); group.remove(p0); assertThat(group.get(0),is(p1)); assertThat(group.size(), is(1)); }
@Test public void shouldRemovePipelineAtIndex() { PipelineConfigs group = createWithPipeline(PipelineConfigMother.pipelineConfig("pipeline0")); PipelineConfig p1 = PipelineConfigMother.pipelineConfig("pipeline1"); group.add(1,p1); group.remove(0); assertThat(group.get(0), is(p1)); assertThat(group.size(), is(1)); }
@Test public void shouldReturnSelfForGetLocalPartsWhenOriginIsFile() { PipelineConfigs pipelineConfigs = createEmpty(); pipelineConfigs.setOrigins(new FileConfigOrigin()); assertThat(pipelineConfigs.getLocal().size(), is(0)); assertSame(pipelineConfigs, pipelineConfigs.getLocal()); } @Test
@Test public void shouldReturnSizeSummedFrom2ConfigParts(){ PipelineConfigs group = new MergePipelineConfigs( new BasicPipelineConfigs(PipelineConfigMother.pipelineConfig("pipeline1")), new BasicPipelineConfigs(PipelineConfigMother.pipelineConfig("pipeline2"))); assertThat(group.size(),is(2)); } @Test