use of com.thoughtworks.go.config.materials.git.GitMaterial in project gocd by gocd.
the class AutoTriggerDependencyResolutionTest method shouldResolveCorrectlyWhenAStageInvolvedInDependencyHasFailed.
/* TRIANGLE TEST END */
@Test
public void shouldResolveCorrectlyWhenAStageInvolvedInDependencyHasFailed() {
int i = 1;
GitMaterial git1 = u.wf(new GitMaterial("git1"), "folder");
String[] git1_revs = { "g11", "g12" };
u.checkinInOrder(git1, u.d(i++), git1_revs);
GitMaterial git2 = u.wf(new GitMaterial("git2"), "folder-git2");
String[] git2_revs = { "g21", "g22" };
u.checkinInOrder(git2, u.d(i++), git2_revs);
ScheduleTestUtil.AddedPipeline p1 = u.saveConfigWith("p1", u.m(git1));
ScheduleTestUtil.AddedPipeline p2 = u.saveConfigWith("p2", u.m(p1));
ScheduleTestUtil.AddedPipeline p3 = u.saveConfigWith("p3", u.m(p1));
ScheduleTestUtil.AddedPipeline p4 = u.saveConfigWith("p4", u.m(git2));
ScheduleTestUtil.AddedPipeline p5 = u.saveConfigWith("p5", u.m(p2), u.m(p3), u.m(p4));
CruiseConfig cruiseConfig = goConfigDao.load();
String p1_1 = u.runAndPassWithGivenMDUTimestampAndRevisionStrings(p1, u.d(i++), "g11");
String p2_1 = u.runAndPassWithGivenMDUTimestampAndRevisionStrings(p2, u.d(i++), p1_1);
String p3_1 = u.runAndPassWithGivenMDUTimestampAndRevisionStrings(p3, u.d(i++), p1_1);
Pipeline p4_1 = u.runAndPassAndReturnPipelineInstance(p4, u.d(i++), "g21");
String p4_1_2 = u.rerunStageAndCancel(p4_1, p4.config.getFirstStageConfig());
MaterialRevisions given = u.mrs(u.mr(p2, true, p2_1), u.mr(p3, true, p3_1), u.mr(p4, true, p4_1.getStages().get(0).getIdentifier().getStageLocator()));
assertThat(getRevisionsBasedOnDependencies(p5, cruiseConfig, given), is(given));
}
use of com.thoughtworks.go.config.materials.git.GitMaterial in project gocd by gocd.
the class AutoTriggerDependencyResolutionTest method shouldResolveSimpleDiamondAndThrowLimitException.
@Test
@ExpectedException(MaxBackTrackLimitReachedException.class)
public void shouldResolveSimpleDiamondAndThrowLimitException() {
int i = 1;
GitMaterial git1 = u.wf(new GitMaterial("git1"), "folder");
String[] git_revs1 = { "g11", "g12" };
u.checkinInOrder(git1, u.d(i++), git_revs1);
ScheduleTestUtil.AddedPipeline p1 = u.saveConfigWith("p1", u.m(git1));
ScheduleTestUtil.AddedPipeline p2 = u.saveConfigWith("p2", u.m(p1));
ScheduleTestUtil.AddedPipeline p3 = u.saveConfigWith("p3", u.m(p1));
ScheduleTestUtil.AddedPipeline p4 = u.saveConfigWith("p4", u.m(p2), u.m(p3));
CruiseConfig cruiseConfig = goConfigDao.load();
String p1_1 = u.runAndPassWithGivenMDUTimestampAndRevisionStrings(p1, u.d(i++), "g11");
String p2_1 = u.runAndPassWithGivenMDUTimestampAndRevisionStrings(p2, u.d(i++), p1_1);
String p3_1 = u.runAndPassWithGivenMDUTimestampAndRevisionStrings(p3, u.d(i++), p1_1);
String p1_2 = u.runAndPassWithGivenMDUTimestampAndRevisionStrings(p1, u.d(i++), "g12");
String p2_2 = u.runAndPassWithGivenMDUTimestampAndRevisionStrings(p2, u.d(i++), p1_2);
MaterialRevisions given = u.mrs(u.mr(p2, true, p2_2), u.mr(p3, false, p3_1));
MaterialRevisions expected = u.mrs(u.mr(p2, true, p2_1), u.mr(p3, false, p3_1));
assertThat(getRevisionsBasedOnDependencies(p4, cruiseConfig, given), is(expected));
systemEnvironment.set(SystemEnvironment.RESOLVE_FANIN_MAX_BACK_TRACK_LIMIT, 1);
getRevisionsBasedOnDependencies(p4, cruiseConfig, given);
}
use of com.thoughtworks.go.config.materials.git.GitMaterial in project gocd by gocd.
the class AutoTriggerDependencyResolutionTest method shouldTrigger_withLatestOfUnsharedMaterial_keepingAllTheSharedMaterialRevisionsPegged.
@Test
public void shouldTrigger_withLatestOfUnsharedMaterial_keepingAllTheSharedMaterialRevisionsPegged() throws Exception {
/**
* git -------> P1--------+
* | |
* | |
* v v
* P2 -----> P3 <---- svn
*/
GitMaterial git = u.wf(new GitMaterial("git"), "folder1");
String[] git_revs = { "g1", "g2" };
u.checkinInOrder(git, git_revs);
SvnMaterial svn = u.wf(new SvnMaterial("svn", "username", "password", false), "folder2");
String[] svn_revs = { "s1", "s2" };
u.checkinInOrder(svn, svn_revs);
ScheduleTestUtil.AddedPipeline p1 = u.saveConfigWith("P1", u.m(git));
ScheduleTestUtil.AddedPipeline p2 = u.saveConfigWith("P2", u.m(p1));
ScheduleTestUtil.AddedPipeline p3 = u.saveConfigWith("P3", u.m(p1), u.m(p2), u.m(svn));
CruiseConfig cruiseConfig = goConfigDao.load();
String p1_1 = u.runAndPass(p1, "g1");
String p2_1 = u.runAndPass(p2, p1_1);
String p1_2 = u.runAndPass(p1, "g2");
u.scheduleWith(p2, p1_2);
String p3_1 = u.runAndPass(p3, p1_1, p2_1, "s1");
MaterialRevisions given = u.mrs(u.mr(p2, true, p2_1), u.mr(u.mw(p1), false, p1_2), u.mr(svn, true, "s2"));
MaterialRevisions expected = u.mrs(u.mr(p2, true, p2_1), u.mr(u.mw(p1), false, p1_1), u.mr(svn, true, "s2"));
MaterialRevisions finalRevisions = getRevisionsBasedOnDependencies(p3, cruiseConfig, given);
assertThat(finalRevisions, is(expected));
}
use of com.thoughtworks.go.config.materials.git.GitMaterial in project gocd by gocd.
the class AutoTriggerDependencyResolutionTest method shouldGetOnlyLatestScmRevisionOnFirstRun.
@Test
public void shouldGetOnlyLatestScmRevisionOnFirstRun() {
GitMaterial gitMaterial = new GitMaterial("git-url", null, "dest-folder");
u.checkinInOrder(gitMaterial, "git-1", "git-2", "git-3");
ScheduleTestUtil.AddedPipeline p1 = u.saveConfigWith("p1", u.m(gitMaterial));
ScheduleTestUtil.AddedPipeline p2 = u.saveConfigWith("p2", u.m(gitMaterial));
ScheduleTestUtil.AddedPipeline p3 = u.saveConfigWith("p3", u.m(gitMaterial), u.m(p1), u.m(p2));
String p1_1 = u.runAndPass(p1, "git-3");
String p2_1 = u.runAndPass(p2, "git-3");
MaterialRevisions given = u.mrs(u.mr(gitMaterial, true, "git-3"), u.mr(p1, false, p1_1), u.mr(p2, false, p2_1));
MaterialRevisions expected = u.mrs(u.mr(gitMaterial, true, "git-3"), u.mr(p1, false, p1_1), u.mr(p2, false, p2_1));
assertThat(getRevisionsBasedOnDependencies(p3, goConfigDao.load(), given), is(expected));
}
use of com.thoughtworks.go.config.materials.git.GitMaterial in project gocd by gocd.
the class AutoTriggerDependencyResolutionTest method shouldResolveTriangleDependencyViaAutoBuild.
@Test
public void shouldResolveTriangleDependencyViaAutoBuild() throws Exception {
SystemEnvironment env = mock(SystemEnvironment.class);
when(env.enforceRevisionCompatibilityWithUpstream()).thenReturn(false);
int i = 0;
GitMaterial git = new GitMaterial("git");
String[] git_revs = { "g1" };
u.checkinInOrder(git, git_revs);
ScheduleTestUtil.AddedPipeline p4 = u.saveConfigWith("p4", u.m(git));
ScheduleTestUtil.AddedPipeline p5 = u.saveConfigWith("p5", u.m(p4));
ScheduleTestUtil.AddedPipeline p6 = u.saveConfigWith("p6", u.m(p4), u.m(p5));
String p4_1 = u.runAndPassWithGivenMDUTimestampAndRevisionStrings(p4, u.d(i++), "g1");
String p4_2 = u.runAndPassWithGivenMDUTimestampAndRevisionStrings(p4, u.d(i++), "g1");
String p5_1 = u.runAndPassWithGivenMDUTimestampAndRevisionStrings(p5, u.d(i++), p4_2);
String p4_3 = u.runAndPassWithGivenMDUTimestampAndRevisionStrings(p4, u.d(i++), "g1");
String p4_4 = u.runAndPassWithGivenMDUTimestampAndRevisionStrings(p4, u.d(i), "g1");
MaterialRevisions given = u.mrs(u.mr(p4, true, p4_4), u.mr(p5, true, p5_1));
MaterialRevisions expected = u.mrs(u.mr(p4, false, p4_2), u.mr(p5, false, p5_1));
AutoBuild autoBuild = new AutoBuild(goConfigService, pipelineService, p6.config.name().toString(), env, materialChecker);
pipelineTimeline.update();
BuildCause buildCause = autoBuild.onModifications(given, false, null);
assertThat(buildCause.getMaterialRevisions(), is(expected));
}
Aggregations