public MaterialConfig findMaterialWithName(final CaseInsensitiveString pipelineName, final CaseInsensitiveString materialName) { MaterialConfigs materialConfigs = materialConfigsFor(pipelineName); for (MaterialConfig materialConfig : materialConfigs) { if (materialName.equals(materialConfig.getName())) { return materialConfig; } } LOGGER.error("material [{}] not found in pipeline [{}]", materialName, pipelineName); return null; }
@Test public void shouldNotUseNameFieldButInsteadUseTheNameMethodToCheckIfTheMaterialNameIsUsedInThePipelineLabel() throws Exception { PipelineConfig pipelineConfig = mock(PipelineConfig.class); when(pipelineConfig.getLabelTemplate()).thenReturn("${COUNT}-${hg}-${dep}-${pkg}-${scm}"); MaterialConfig hg = mock(HgMaterialConfig.class); when(hg.getName()).thenReturn(new CaseInsensitiveString("hg")); when(hg.isUsedInLabelTemplate(pipelineConfig)).thenCallRealMethod(); MaterialConfig dependency = mock(DependencyMaterialConfig.class); when(dependency.getName()).thenReturn(new CaseInsensitiveString("dep")); when(dependency.isUsedInLabelTemplate(pipelineConfig)).thenCallRealMethod(); MaterialConfig aPackage = mock(PackageMaterialConfig.class); when(aPackage.getName()).thenReturn(new CaseInsensitiveString("pkg")); when(aPackage.isUsedInLabelTemplate(pipelineConfig)).thenCallRealMethod(); MaterialConfig aPluggableSCM = mock(PluggableSCMMaterialConfig.class); when(aPluggableSCM.getName()).thenReturn(new CaseInsensitiveString("scm")); when(aPluggableSCM.isUsedInLabelTemplate(pipelineConfig)).thenCallRealMethod(); assertThat(hg.isUsedInLabelTemplate(pipelineConfig), is(true)); assertThat(dependency.isUsedInLabelTemplate(pipelineConfig), is(true)); assertThat(aPackage.isUsedInLabelTemplate(pipelineConfig), is(true)); assertThat(aPluggableSCM.isUsedInLabelTemplate(pipelineConfig), is(true)); verify(hg).getName(); verify(dependency).getName(); verify(aPackage).getName(); verify(aPluggableSCM).getName(); }
@Test public void shouldLoadMaterialNameIfPresent() throws Exception { CruiseConfig config = ConfigMigrator.loadWithMigration(MATERIAL_WITH_NAME).config; MaterialConfigs materialConfigs = config.pipelineConfigByName(new CaseInsensitiveString("pipeline")).materialConfigs(); assertThat(materialConfigs.get(0).getName(), is(new CaseInsensitiveString("svn"))); assertThat(materialConfigs.get(1).getName(), is(new CaseInsensitiveString("hg"))); }
@Theory public void shouldBeSameObject_WhenConversionIsDoneFromMaterialToMaterialInstanceAndBack(MaterialConfig materialConfig) throws Exception { Material material = materialConfigConverter.toMaterial(materialConfig); MaterialInstance materialInstance = material.createMaterialInstance(); Material materialConvertedBackFromInstance = materialInstance.toOldMaterial(materialConfig.getName().toString(), materialConfig.getFolder(), "pass"); assertTrue(message("Material <-> MaterialInstance conversion failed.", material, materialConvertedBackFromInstance), reflectionEquals(material, materialConvertedBackFromInstance, fieldsWhichShouldBeIgnoredWhenSavedInDbAndGotBack.get(materialConfig.getClass()))); assertThat(materialInstance.getFingerprint(), is(material.getFingerprint())); assertThat(materialConvertedBackFromInstance.getFingerprint(), is(materialInstance.getFingerprint())); assertPasswordIsCorrect(material); assertPasswordIsCorrect(materialConvertedBackFromInstance); }
+ "</pipelines></cruise>"; GoConfigHolder holder = ConfigMigrator.loadWithMigration(xml); assertThat(holder.config.getAllPipelineConfigs().get(0).materialConfigs().get(0).getName().toString(), is("repo_name:pkg_name"));