private MaterialRevisions restoreOriginalOrder(MaterialRevisions actualRevisions, MaterialRevisions computedRevisions) { MaterialRevisions orderedComputedRevisions = new MaterialRevisions(); for (MaterialRevision actualRevision : actualRevisions) { orderedComputedRevisions.addRevision(computedRevisions.findRevisionFor(actualRevision.getMaterial())); } return orderedComputedRevisions; }
@SuppressWarnings("unchecked") public MaterialRevisions findMaterialRevisionsForPipeline(long pipelineId) { List<PipelineMaterialRevision> revisions = findPipelineMaterialRevisions(pipelineId); MaterialRevisions materialRevisions = new MaterialRevisions(); for (PipelineMaterialRevision revision : revisions) { List<Modification> modifications = findModificationsFor(revision); materialRevisions.addRevision(new MaterialRevision(revision.getMaterial(), revision.getChanged(), modifications.toArray(new Modification[modifications.size()]))); } return materialRevisions; }
private MaterialRevisions filter(MaterialRevisions other) { MaterialRevisions filtered = new MaterialRevisions(); for (MaterialRevision myRevision : revisions) { MaterialRevision originalRevision = other.findRevisionFor(myRevision.getMaterial()); filtered.addRevision(myRevision.filter(originalRevision)); } return filtered; }
@Test // #3122 public void shouldNotIgnoreChangesInUpstreamPipeline() { MaterialRevisions original = new MaterialRevisions(dependencyMaterialRevision("cruise", 365, "1.3-365", "dist-zip", 1, new Date())); MaterialRevisions current = new MaterialRevisions(dependencyMaterialRevision("cruise", 370, "1.3-370", "dist-zip", 1, new Date())); assertThat(current.hasChangedSince(original), is(true)); }
@Test public void shouldBeAbleToDetectWhenMaterialRevisionsHaveChanged() { MaterialRevisions first = new MaterialRevisions( svnMaterialRevision(oneHourAgoMod, yesterdayMod) ); MaterialRevisions second = new MaterialRevisions( svnMaterialRevision(nowMod) ); assertThat(second.hasChangedSince(first), is(true)); }
public static MaterialRevisions createHgMaterialRevisions() { MaterialRevisions materialRevisions = new MaterialRevisions(); materialRevisions.addRevision(MaterialsMother.hgMaterial(), multipleModificationsInHg()); return materialRevisions; }
@Test public void shouldBeAbleToDetectWhenMaterialsDontMatch() { MaterialRevisions first = new MaterialRevisions( svnMaterialRevision("1", FILTER_DOC_PDF, oneHourAgoMod, yesterdayMod), svnMaterialRevision("2", FILTER_DOC_PDF, nowMod) ); MaterialRevisions second = new MaterialRevisions( svnMaterialRevision("1", FILTER_DOC_PDF, oneHourAgoMod, yesterdayMod), svnMaterialRevision("3", FILTER_DOC_PDF, nowMod) ); assertThat(second.hasChangedSince(first), is(true)); }
@Test public void shouldUseUpstreamPipelineLabelForDependencyMaterial() { CaseInsensitiveString pipelineName = new CaseInsensitiveString("upstream"); String pipelineLabel = "1.3.0-1234"; MaterialRevision materialRevision = ModificationsMother.dependencyMaterialRevision(pipelineName.toString(), 2, pipelineLabel, "dev", 1, new Date()); MaterialRevisions materialRevisions = new MaterialRevisions(materialRevision); Map<CaseInsensitiveString, String> namedRevisions = materialRevisions.getNamedRevisions(); assertThat(namedRevisions.get(pipelineName), is(pipelineLabel)); }
@Test public void shouldBeSameIfHasSameHeads() { MaterialRevisions first = new MaterialRevisions( svnMaterialRevision(oneModifiedFile("revision2"), oneModifiedFile("revision1")) ); MaterialRevisions second = new MaterialRevisions( svnMaterialRevision(oneModifiedFile("revision2")) ); assertThat(first.isSameAs(second), is(true)); }
@Test public void shouldKnowDateOfLatestModification() { //modifications are ordered, the first modification is the latest one MaterialRevisions materialRevisions = new MaterialRevisions( svnMaterialRevision(yesterdayMod, oneHourAgoMod) ); assertThat(materialRevisions.getDateOfLatestModification(), is(yesterdayMod.getModifiedTime())); }
private MaterialRevisions materialRevisions() throws IOException { MaterialRevision svnRevision = new MaterialRevision(this.svnMaterial, ModificationsMother.oneModifiedFile( svnRepoFixture.getHeadRevision(svnRepoFixture.getEnd2EndRepoUrl()))); return new MaterialRevisions(svnRevision); }
@Test public void shouldMatchByUserName() { MaterialRevisions materialRevisions = new MaterialRevisions( svnMaterialRevision(aCheckIn("100", "README")) ); assertThat(materialRevisions.containsMyCheckin(new Matcher(MOD_USER_COMMITTER)), is(true)); }
@Test public void shouldMatchByComment() { MaterialRevisions materialRevisions = new MaterialRevisions( svnMaterialRevision(aCheckIn("100", "README")) ); assertThat(materialRevisions.containsMyCheckin(new Matcher("readme")), is(false)); }
@Test public void shouldNotBeSameIfOneMaterialRevisionIsNewAndOldOneHadOnlyOneRevision() throws Exception { MaterialRevisions first = new MaterialRevisions( svnMaterialRevision(oneModifiedFile("svn revision 2")), hgMaterialRevision(oneModifiedFile("hg revision 1")) ); MaterialRevisions second = new MaterialRevisions( svnMaterialRevision(oneModifiedFile("svn revision 2")), hgMaterialRevision(oneModifiedFile("hg revision 2")) ); assertThat(first.isSameAs(second), is(false)); }
public static MaterialRevisions multipleModifications(PipelineConfig pipelineConfig) { MaterialRevisions materialRevisions = new MaterialRevisions(); for (Material material : new MaterialConfigConverter().toMaterials(pipelineConfig.materialConfigs())) { materialRevisions.addRevision(material, multipleModificationList()); } return materialRevisions; }
@Test public void shouldReturnBuildCauseMessageForLegacyDependencyRevision() { MaterialRevisions revisions = new MaterialRevisions(); Modification modification = new Modification(new Date(), "pipelineName/10/stageName/1", "MOCK_LABEL-12", null); revisions.addRevision(new DependencyMaterial(new CaseInsensitiveString("cruise"), new CaseInsensitiveString("dev")), modification); BuildCause modificationBuildCause = BuildCause.createWithModifications(revisions, ""); String message = modificationBuildCause.getBuildCauseMessage(); assertThat(message, containsString("triggered by pipelineName/10/stageName/1")); }
public static MaterialRevisions multipleModificationsInHg(PipelineConfig pipelineConfig) { MaterialRevisions materialRevisions = new MaterialRevisions(); for (Material material : new MaterialConfigConverter().toMaterials(pipelineConfig.materialConfigs())) { materialRevisions.addRevision(material, multipleModificationsInHg()); } return materialRevisions; }
@Test public void shouldReturnLatestChangeSetIfAnyChangeSetShouldNotIgnore() { MaterialRevisions first = new MaterialRevisions( svnMaterialRevision("folder1", FILTER_DOC_PDF, aCheckIn("99", "/b.java")), svnMaterialRevision("folder2", FILTER_DOC_PDF, aCheckIn("5", "/a.html")) ); MaterialRevisions second = new MaterialRevisions( svnMaterialRevision("folder1", FILTER_DOC_PDF, aCheckIn("100", "/a.doc"), aCheckIn("100", "/b.doc")), svnMaterialRevision("folder2", FILTER_DOC_PDF, aCheckIn("5", "/a.html")) ); assertThat(second.hasChangedSince(first), is(false)); }
@Test public void shouldNotBeSameIfOneMaterialRevisionIsNew() throws Exception { MaterialRevisions first = new MaterialRevisions( svnMaterialRevision(oneModifiedFile("svn revision 2"), oneModifiedFile("svn revision 1")), hgMaterialRevision(oneModifiedFile("hg revision 1")) ); MaterialRevisions second = new MaterialRevisions( svnMaterialRevision(oneModifiedFile("svn revision 2")), hgMaterialRevision(oneModifiedFile("hg revision 2")) ); assertThat(first.isSameAs(second), is(false)); }
@Test public void shouldGetCurrentMaterialRevisionForMaterial() { MaterialRevisions revisions = new MaterialRevisions(); HgMaterial material = MaterialsMother.hgMaterial(); revisions.addRevision(material, HG_MATERIAL_MODIFICATION); PipelineInstanceModel model = PipelineInstanceModel.createPipeline("pipeline", -1, "label", BuildCause.createWithModifications(revisions, ""), new StageInstanceModels()); assertThat(model.findCurrentMaterialRevisionForUI(material.config()), is(revisions.getMaterialRevision(0))); }