use of com.thoughtworks.go.domain.materials.Modification in project gocd by gocd.
the class BuildCauseProducerServiceTest method shouldHandleNoModificationExceptionThrownByAutoBuild.
@Test
public void shouldHandleNoModificationExceptionThrownByAutoBuild() {
String pipelineName = "pipeline";
ServerHealthStateOperationResult result = new ServerHealthStateOperationResult();
PipelineConfig config = PipelineConfigMother.pipelineConfig(pipelineName);
Material svnMaterial = MaterialsMother.defaultMaterials().get(0);
DependencyMaterial dependencyMaterial = new DependencyMaterial(new CaseInsensitiveString("up"), new CaseInsensitiveString("s1"));
config.materialConfigs().clear();
config.addMaterialConfig(svnMaterial.config());
config.addMaterialConfig(dependencyMaterial.config());
when(pipelineService.getRevisionsBasedOnDependencies(Matchers.<MaterialRevisions>any(), Matchers.<BasicCruiseConfig>any(), Matchers.<CaseInsensitiveString>any())).thenThrow(new NoModificationsPresentForDependentMaterialException("P/1/S/1"));
when(pipelineScheduleQueue.mostRecentScheduled(pipelineName)).thenReturn(BuildCause.createNeverRun());
Modification modification = ModificationsMother.checkinWithComment("r", "c", new Date(), "f1");
when(materialRepository.findLatestModification(svnMaterial)).thenReturn(ModificationsMother.createSvnMaterialWithMultipleRevisions(1, modification));
when(materialRepository.findLatestModification(dependencyMaterial)).thenReturn(new MaterialRevisions(ModificationsMother.changedDependencyMaterialRevision("up", 1, "1", "s", 1, new Date())));
when(specificMaterialRevisionFactory.create(Matchers.<String>any(), Matchers.<Map<String, String>>any())).thenReturn(MaterialRevisions.EMPTY);
when(goConfigService.upstreamDependencyGraphOf(Matchers.<String>any(), Matchers.<BasicCruiseConfig>any())).thenReturn(new PipelineConfigDependencyGraph(config));
MaterialConfigs knownMaterialConfigs = new MaterialConfigs(svnMaterial.config(), dependencyMaterial.config());
Materials materials = new Materials(svnMaterial, dependencyMaterial);
when(materialConfigConverter.toMaterials(config.materialConfigs())).thenReturn(materials);
when(materialExpansionService.expandMaterialConfigsForScheduling(config.materialConfigs())).thenReturn(knownMaterialConfigs);
when(materialConfigConverter.toMaterials(knownMaterialConfigs)).thenReturn(materials);
AutoBuild autoBuild = new AutoBuild(goConfigService, pipelineService, pipelineName, new SystemEnvironment(), null, mockServerHealthService);
ServerHealthState serverHealthState = buildCauseProducerService.newProduceBuildCause(config, autoBuild, result, 12345);
assertThat(serverHealthState.isSuccess(), is(true));
}
use of com.thoughtworks.go.domain.materials.Modification in project gocd by gocd.
the class StageJsonPresentationModelTest method materialRevisions.
private MaterialRevisions materialRevisions(String userWithHtmlCharacters) {
MaterialRevisions revisions = new MaterialRevisions();
revisions.addRevision(MaterialsMother.svnMaterial(), new Modification(userWithHtmlCharacters, "comment", "email", new Date(), "r1"));
return revisions;
}
use of com.thoughtworks.go.domain.materials.Modification in project gocd by gocd.
the class MaterialRevisionsJsonBuilderTest method shouldNotProcessPackageMaterialComment.
@Test
public void shouldNotProcessPackageMaterialComment() throws Exception {
HashMap<String, String> map = new HashMap<>();
map.put("TYPE", "PACKAGE_MATERIAL");
map.put("TRACKBACK_URL", "google.com");
map.put("COMMENT", "comment");
String packageMaterialComment = JsonHelper.toJsonString(map);
Modification modification = new Modification("user", packageMaterialComment, "some@com", new Date(), "1234");
materialRevisions = new MaterialRevisions(new MaterialRevision(MaterialsMother.packageMaterial(), modification));
JSONArray jsonArray = buildJson();
JSONObject modificationJson = (JSONObject) ((JSONArray) ((JSONObject) jsonArray.get(0)).get("modifications")).get(0);
assertThat(modificationJson.get("comment").render(false), is(JsonHelper.toJsonString(packageMaterialComment)));
}
use of com.thoughtworks.go.domain.materials.Modification in project gocd by gocd.
the class ViewCacheKeyTest method shouldGenerateKeyForEnvironmentPipelineFragment.
@Test
public void shouldGenerateKeyForEnvironmentPipelineFragment() {
MaterialRevisions materialRevisions = ModificationsMother.createHgMaterialRevisions();
Modification latestModification = materialRevisions.getMaterialRevision(0).getModifications().remove(0);
PipelineModel model = new PipelineModel("pipelineName", true, true, PipelinePauseInfo.notPaused()).updateAdministrability(true);
StageInstanceModels stages = new StageInstanceModels();
stages.add(stageInstance("stageName", 13, JobState.Building, JobResult.Unknown));
stages.add(new NullStageHistoryItem("stage2", true));
PipelineInstanceModel pipelineInstance = PipelineInstanceModel.createPipeline("pipelineName", 10, "label-10", BuildCause.createWithModifications(materialRevisions, "someone"), stages);
pipelineInstance.setMaterialConfigs(materialRevisions.getMaterials().convertToConfigs());
pipelineInstance.setLatestRevisions(new MaterialRevisions(new MaterialRevision(materialRevisions.getMaterialRevision(0).getMaterial(), latestModification)));
pipelineInstance.setId(12);
model.addPipelineInstance(pipelineInstance);
assertThat(model.hasNewRevisions(), is(true));
assertThat(viewCacheKey.forEnvironmentPipelineBox(model), is("view_environmentPipelineFragment_pipelineName{false|false|false}[12|stageName|13|Building|stage2|0|Unknown|]true|true|false|||true|true"));
model.updateAdministrability(false);
assertThat(viewCacheKey.forEnvironmentPipelineBox(model), is("view_environmentPipelineFragment_pipelineName{false|false|false}[12|stageName|13|Building|stage2|0|Unknown|]true|true|false|||false|true"));
}
use of com.thoughtworks.go.domain.materials.Modification in project gocd by gocd.
the class LevelAssignmentTest method shouldAssignLevelsForDownstreamNodesOfCurrentMaterial.
@Test
public void shouldAssignLevelsForDownstreamNodesOfCurrentMaterial() throws Exception {
/*
---> p1 ----
/ \
git --> p ----------> p3
\ /
---> p2 ----
*/
Node p = new PipelineDependencyNode("p", "p");
Node p1 = new PipelineDependencyNode("p1", "p1");
Node p2 = new PipelineDependencyNode("p2", "p2");
Node p3 = new PipelineDependencyNode("p3", "p3");
GitMaterial material = new GitMaterial("url");
Modification modification = ModificationsMother.aCheckIn("1");
ValueStreamMap valueStreamMap = new ValueStreamMap(material, null, modification);
Node gitNode = valueStreamMap.getCurrentMaterial();
valueStreamMap.addDownstreamNode(p, gitNode.getId());
valueStreamMap.addDownstreamNode(p1, p.getId());
valueStreamMap.addDownstreamNode(p2, p.getId());
valueStreamMap.addDownstreamNode(p3, p1.getId());
valueStreamMap.addDownstreamNode(p3, p2.getId());
NodeLevelMap levelToNodeMap = new LevelAssignment().apply(valueStreamMap);
assertThat(valueStreamMap.getCurrentMaterial().getLevel(), is(0));
assertThat(p.getLevel(), is(1));
assertThat(p1.getLevel(), is(2));
assertThat(p2.getLevel(), is(2));
assertThat(p3.getLevel(), is(3));
assertThat(levelToNodeMap.get(0), contains(valueStreamMap.getCurrentMaterial()));
assertThat(levelToNodeMap.get(1), containsInAnyOrder(p));
assertThat(levelToNodeMap.get(2), containsInAnyOrder(p1, p2));
assertThat(levelToNodeMap.get(3), contains(p3));
}
Aggregations