@Test public void shouldCopyOverPasswordWhenConvertingToConfig() throws Exception { SvnMaterial material = new SvnMaterial("abc", "def", "ghi", false); SvnMaterialConfig config = (SvnMaterialConfig) material.config(); assertThat(config.getEncryptedPassword(), is(not(Matchers.nullValue()))); assertThat(config.getPassword(), is("ghi")); }
@Test public void shouldBeInvalidWhenMaterialsFromConfigAreNotInBuildCause() { SvnMaterial mainRepo = MaterialsMother.svnMaterial("mainRepo"); SvnMaterial extRepo = MaterialsMother.svnMaterial("externalRepo"); MaterialRevisions revisions = new MaterialRevisions(); revisions.addRevision(mainRepo, multipleModificationList()); buildCause = BuildCause.createWithModifications(revisions, ""); try { buildCause.assertMaterialsMatch(new MaterialConfigs(mainRepo.config(), extRepo.config())); fail("All the materials from config file should be in build cause"); } catch (Exception expected) { } } }
@Test public void shouldReturnIfAnyMaterialHasModifications() { final SvnMaterial svnMaterial = svnMaterial("http://svnurl"); final HgMaterial hgMaterial = hgMaterial("http://hgurl", "hgdir"); MaterialRevisions currentRevisions = ModificationsMother.getMaterialRevisions(new HashMap<Material, String>() {{ put(svnMaterial, "1"); put(hgMaterial, "a"); }}); MaterialRevisions latestRevisions = ModificationsMother.getMaterialRevisions(new HashMap<Material, String>() {{ put(svnMaterial, "1"); put(hgMaterial, "b"); }}); MaterialConfigs materialConfigs = new MaterialConfigs(); materialConfigs.add(svnMaterial.config()); materialConfigs.add(hgMaterial.config()); StageInstanceModels stages = new StageInstanceModels(); stages.addStage("unit1", JobHistory.withJob("test", JobState.Completed, JobResult.Passed, new Date())); stages.addFutureStage("unit2", false); PipelineInstanceModel model = PipelineInstanceModel.createPipeline("pipeline", -1, "label", BuildCause.createWithModifications(currentRevisions, ""), stages); model.setLatestRevisions(latestRevisions); model.setMaterialConfigs(materialConfigs); assertThat("svnMaterial hasNewRevisions", model.hasNewRevisions(svnMaterial.config()), is(false)); assertThat("hgMaterial hasNewRevisions", model.hasNewRevisions(hgMaterial.config()), is(true)); assertThat("all materials hasNewRevisions", model.hasNewRevisions(), is(true)); }
@Test public void shouldBeValidWithExternalMaterials() { SvnMaterial mainRepo = MaterialsMother.svnMaterial("mainRepo"); MaterialRevisions revisions = new MaterialRevisions(); revisions.addRevision(mainRepo, multipleModificationList()); revisions.addRevision(MaterialsMother.svnMaterial("externalRepo"), multipleModificationList()); buildCause = BuildCause.createWithModifications(revisions, ""); buildCause.assertMaterialsMatch(new MaterialConfigs(mainRepo.config())); }
@Test public void shouldUseSvnMaterialNameIfPresent() throws IOException { svnMaterial.setName(new CaseInsensitiveString("Cruise")); pipelineConfig.setMaterialConfigs(new MaterialConfigs(svnMaterial.config())); BuildAssignment buildAssigment = createAssignment(null); BuildWork work = new BuildWork(buildAssigment, systemEnvironment.consoleLogCharset()); EnvironmentVariableContext environmentVariableContext = new EnvironmentVariableContext(); new SystemEnvironment().setProperty("serviceUrl", "some_random_place"); AgentIdentifier agentIdentifier = new AgentIdentifier("somename", "127.0.0.1", AGENT_UUID); work.doWork(environmentVariableContext, new AgentWorkContext(agentIdentifier, new FakeBuildRepositoryRemote(), new GoArtifactsManipulatorStub(), new AgentRuntimeInfo(agentIdentifier, AgentRuntimeStatus.Idle, currentWorkingDirectory(), "cookie", false), packageRepositoryExtension, scmExtension, taskExtension, null, null)); assertThat(environmentVariableContext.getProperty("GO_REVISION_CRUISE"), is("3")); }
@Test public void shouldNotThrowWhenMaterialAndConfigOriginRevisionDontMatch_WhenManualTrigger() { SvnMaterial material = MaterialsMother.svnMaterial(); MaterialConfig materialConfig = material.config(); MaterialRevisions first = new MaterialRevisions( new MaterialRevision(material, oneModifiedFile("revision1")) ); BuildCause buildCause = BuildCause.createManualForced(); buildCause.setMaterialRevisions(first); PipelineConfig pipelineConfig = PipelineConfigMother.createPipelineConfigWithStages("pipe1", "build"); pipelineConfig.materialConfigs().clear(); pipelineConfig.materialConfigs().add(materialConfig); pipelineConfig.setOrigin(new RepoConfigOrigin(new ConfigRepoConfig(materialConfig,"plug"),"revision2")); buildCause.assertPipelineConfigAndMaterialRevisionMatch(pipelineConfig); }
@Test public void shouldNotThrowWhenMaterialAndConfigOriginRevisionMatch_WhenAutoTrigger() { SvnMaterial material = MaterialsMother.svnMaterial(); MaterialConfig materialConfig = material.config(); MaterialRevisions first = new MaterialRevisions( new MaterialRevision(material, oneModifiedFile("revision1")) ); BuildCause buildCause = BuildCause.createWithModifications(first,""); buildCause.setMaterialRevisions(first); PipelineConfig pipelineConfig = PipelineConfigMother.createPipelineConfigWithStages("pipe1", "build"); pipelineConfig.materialConfigs().clear(); pipelineConfig.materialConfigs().add(materialConfig); pipelineConfig.setOrigin(new RepoConfigOrigin(new ConfigRepoConfig(materialConfig,"plug"),"revision1")); buildCause.assertPipelineConfigAndMaterialRevisionMatch(pipelineConfig); }
@Test public void shouldThrowWhenMaterialAndConfigOriginRevisionDontMatch_WhenAutoTrigger() { SvnMaterial material = MaterialsMother.svnMaterial(); MaterialConfig materialConfig = material.config(); MaterialRevisions first = new MaterialRevisions( new MaterialRevision(material, oneModifiedFile("revision1")) ); BuildCause buildCause = BuildCause.createWithModifications(first,""); buildCause.setMaterialRevisions(first); PipelineConfig pipelineConfig = PipelineConfigMother.createPipelineConfigWithStages("pipe1", "build"); pipelineConfig.materialConfigs().clear(); pipelineConfig.materialConfigs().add(materialConfig); pipelineConfig.setOrigin(new RepoConfigOrigin(new ConfigRepoConfig(materialConfig,"plug"),"revision2")); try { buildCause.assertPipelineConfigAndMaterialRevisionMatch(pipelineConfig); } catch (BuildCauseOutOfDateException ex) { //good return; } fail("should have thrown"); }