public boolean isAutoUpdateStateMismatch(MaterialConfigs materialAutoUpdateMap) { if(materialAutoUpdateMap.size() > 1){ for (MaterialConfig otherMaterial : materialAutoUpdateMap) { if (otherMaterial.isAutoUpdate() != this.autoUpdate) { return true; } } } return false; }
@Test public void shouldSetPluggableSCMMaterialConfigAttributesForMaterial() { String scmId = "scm-id"; Map<String, String> hashMap = new HashMap<>(); hashMap.put(PluggableSCMMaterialConfig.SCM_ID, scmId); Map<String, Object> attributeMap = new HashMap<>(); attributeMap.put(AbstractMaterialConfig.MATERIAL_TYPE, PluggableSCMMaterialConfig.TYPE); attributeMap.put(PluggableSCMMaterialConfig.TYPE, hashMap); MaterialConfigs materialConfigs = new MaterialConfigs(); materialConfigs.setConfigAttributes(attributeMap); assertThat(materialConfigs.size(), is(1)); assertThat(((PluggableSCMMaterialConfig) materialConfigs.first()).getScmId(), is(scmId)); }
@Test public void shouldSetPackageMaterialConfigAttributesForMaterial() { Map<String, String> hashMap = new HashMap<>(); String packageId = "some-id"; hashMap.put(PackageMaterialConfig.PACKAGE_ID, packageId); Map<String, Object> attributeMap = new HashMap<>(); attributeMap.put(AbstractMaterialConfig.MATERIAL_TYPE, PackageMaterialConfig.TYPE); attributeMap.put(PackageMaterialConfig.TYPE, hashMap); MaterialConfigs materialConfigs = new MaterialConfigs(); materialConfigs.setConfigAttributes(attributeMap); assertThat(materialConfigs.size(), is(1)); assertThat(((PackageMaterialConfig) materialConfigs.first()).getPackageId(), is(packageId)); }
@Test public void shouldSetP4ConfigAttributesForMaterial() { MaterialConfigs materialConfigs = new MaterialConfigs(); Map<String, String> hashMap = new HashMap<>(); hashMap.put(P4MaterialConfig.SERVER_AND_PORT, "localhost:1666"); hashMap.put(P4MaterialConfig.USERNAME, "username"); hashMap.put(P4MaterialConfig.PASSWORD, "password"); hashMap.put(P4MaterialConfig.VIEW, "foo"); Map<String, Object> attributeMap = new HashMap<>(); attributeMap.put(AbstractMaterialConfig.MATERIAL_TYPE, P4MaterialConfig.TYPE); attributeMap.put(P4MaterialConfig.TYPE, hashMap); materialConfigs.setConfigAttributes(attributeMap); assertThat(materialConfigs.size(), is(1)); P4MaterialConfig expected = new P4MaterialConfig("localhost:1666", "foo", "username"); expected.setPassword("password"); assertThat(materialConfigs.first(), is(expected)); }
@Test public void shouldSetGitConfigAttributesForMaterial() { MaterialConfigs materialConfigs = new MaterialConfigs(); Map<String, String> hashMap = new HashMap<>(); hashMap.put(GitMaterialConfig.URL, "foo"); hashMap.put(GitMaterialConfig.BRANCH, "master"); HashMap<String, Object> attributeMap = new HashMap<>(); attributeMap.put(AbstractMaterialConfig.MATERIAL_TYPE, GitMaterialConfig.TYPE); attributeMap.put(GitMaterialConfig.TYPE, hashMap); materialConfigs.setConfigAttributes(attributeMap); assertThat(materialConfigs.size(), is(1)); GitMaterialConfig expected = new GitMaterialConfig("foo"); expected.setConfigAttributes(Collections.singletonMap(GitMaterialConfig.BRANCH, "master")); assertThat(materialConfigs.first(), is(expected)); }
@Test public void shouldSetDependencyMaterialConfigAttributesForMaterial() { MaterialConfigs materialConfigs = new MaterialConfigs(); Map<String, String> hashMap = new HashMap<>(); hashMap.put(DependencyMaterialConfig.PIPELINE_STAGE_NAME, "blah [foo]"); Map<String, Object> attributeMap = new HashMap<>(); attributeMap.put(AbstractMaterialConfig.MATERIAL_TYPE, DependencyMaterialConfig.TYPE); attributeMap.put(DependencyMaterialConfig.TYPE, hashMap); materialConfigs.setConfigAttributes(attributeMap); assertThat(materialConfigs.size(), is(1)); DependencyMaterialConfig expected = new DependencyMaterialConfig(new CaseInsensitiveString("blah"), new CaseInsensitiveString("foo")); assertThat(materialConfigs.first(), is(expected)); }
@Test public void shouldClearExistingAndSetHgConfigAttributesForMaterial() { MaterialConfigs materialConfigs = new MaterialConfigs(); materialConfigs.add(new HgMaterialConfig("", null)); materialConfigs.add(new SvnMaterialConfig("", "", "", false)); Map<String, String> hashMap = new HashMap<>(); hashMap.put(HgMaterialConfig.URL, "foo"); Map<String, Object> attributeMap = new HashMap<>(); attributeMap.put(AbstractMaterialConfig.MATERIAL_TYPE, HgMaterialConfig.TYPE); attributeMap.put(HgMaterialConfig.TYPE, hashMap); materialConfigs.setConfigAttributes(attributeMap); assertThat(materialConfigs.size(), is(1)); assertThat(materialConfigs.first(), is(new HgMaterialConfig("foo", null))); }
@Test public void shouldGetAllMaterialsByFingerPrint() throws Exception { CruiseConfig cruiseConfig = new GoConfigMother().cruiseConfigWithPipelineUsingTwoMaterials(); MaterialConfig expectedMaterial = MaterialConfigsMother.multipleMaterialConfigs().get(1); PipelineConfigSaveValidationContext context = PipelineConfigSaveValidationContext.forChain(true, "group", cruiseConfig); MaterialConfigs allMaterialsByFingerPrint = context.getAllMaterialsByFingerPrint(expectedMaterial.getFingerprint()); assertThat(allMaterialsByFingerPrint.size(), is(1)); assertThat(allMaterialsByFingerPrint.first(), is(expectedMaterial)); } @Test
@Test public void shouldDeserializeGroupXml() throws Exception { String partialXml = "<pipelines group=\"group_name\">\n" + " <pipeline name=\"new_name\">\n" + " <materials>\n" + " <svn url=\"file:///tmp/foo\" />\n" + " </materials>\n" + " <stage name=\"stage_name\">\n" + " <jobs>\n" + " <job name=\"job_name\" />\n" + " </jobs>\n" + " </stage>\n" + " </pipeline>\n" + "</pipelines>"; PipelineConfigs pipelineConfigs = xmlLoader.fromXmlPartial(partialXml, BasicPipelineConfigs.class); PipelineConfig pipeline = pipelineConfigs.findBy(new CaseInsensitiveString("new_name")); assertThat(pipeline, is(notNullValue())); assertThat(pipeline.materialConfigs().size(), is(1)); MaterialConfig material = pipeline.materialConfigs().get(0); assertThat(material, is(Matchers.instanceOf(SvnMaterialConfig.class))); assertThat(material.getUriForDisplay(), is("file:///tmp/foo")); assertThat(pipeline.size(), is(1)); assertThat(pipeline.get(0).getJobs().size(), is(1)); }
@Test public void shouldLoadPipelineWithMultipleMaterials() throws Exception { String pipelineXmlPartial = "<pipeline name=\"pipeline\">\n" + " <materials>\n" + " <svn url=\"/hgrepo1\" dest=\"folder1\" />\n" + " <svn url=\"/hgrepo2\" dest=\"folder2\" />\n" + " <svn url=\"/hgrepo3\" dest=\"folder3\" />\n" + " </materials>\n" + " <stage name=\"mingle\">\n" + " <jobs>\n" + " <job name=\"functional\">\n" + " <artifacts>\n" + " <log src=\"artifact1.xml\" dest=\"cruise-output\" />\n" + " </artifacts>\n" + " </job>\n" + " </jobs>\n" + " </stage>\n" + "</pipeline>\n"; PipelineConfig pipeline = xmlLoader.fromXmlPartial(pipelineXmlPartial, PipelineConfig.class); assertThat(pipeline.materialConfigs().size(), is(3)); ScmMaterialConfig material = (ScmMaterialConfig) pipeline.materialConfigs().get(0); assertThat(material.getFolder(), is("folder1")); }
@Test public void shouldReturnAllMaterialsMatchingTheFingerprint() { CruiseConfig cruiseConfig = new BasicCruiseConfig(); HgMaterialConfig hg = new HgMaterialConfig("url", null); for (int i = 0; i < 10; i++) { PipelineConfig pipelineConfig = PipelineConfigMother.pipelineConfig("pipeline" + i, new MaterialConfigs(hg)); cruiseConfig.addPipeline("defaultGroup", pipelineConfig); } ValidationContext context = ConfigSaveValidationContext.forChain(cruiseConfig); assertThat(context.getAllMaterialsByFingerPrint(hg.getFingerprint()).size(), is(10)); }
@Test public void shouldAllowTFSMaterial() { String content = configWithPipeline( "<pipeline name='some_pipeline'>" + " <materials>" + " <tfs url='tfsurl' username='foo' password='bar' projectPath='project-path' />" + " </materials>" + " <stage name='some_stage'>" + " <jobs>" + " <job name='some_job'>" + " </job>" + " </jobs>" + " </stage>" + "</pipeline>", CONFIG_SCHEMA_VERSION); GoConfigHolder goConfigHolder = ConfigMigrator.loadWithMigration(content); MaterialConfigs materialConfigs = goConfigHolder.config.pipelineConfigByName(new CaseInsensitiveString("some_pipeline")).materialConfigs(); assertThat(materialConfigs.size(), is(1)); TfsMaterialConfig materialConfig = (TfsMaterialConfig) materialConfigs.get(0); assertThat(materialConfig, is(new TfsMaterialConfig(new GoCipher(), UrlArgument.create("tfsurl"), "foo", "", "bar", "project-path"))); }
assertThat(plan.getTabs().first().getName(), is("Emma")); assertThat(plan.getTabs().first().getPath(), is("logs/emma/index.html")); assertThat(pipelineConfig1.materialConfigs().size(), is(1)); shouldBeSvnMaterial(pipelineConfig1.materialConfigs().first());