@Override protected void updateConfig(CruiseConfig cruiseConfig) { PackageDefinition packageDefinition = createNewPackageDefinition(cruiseConfig); packageMaterialConfig.setPackageDefinition(packageDefinition); PipelineConfig pipelineConfig = cruiseConfig.pipelineConfigByName(new CaseInsensitiveString(pipeline)); pipelineConfig.addMaterialConfig(packageMaterialConfig); } }
@Override protected void updateConfig(CruiseConfig cruiseConfig) { PackageDefinition packageDefinition = getPackageDefinition(cruiseConfig); packageMaterialConfig.setPackageDefinition(packageDefinition); PipelineConfig pipelineConfig = cruiseConfig.pipelineConfigByName(new CaseInsensitiveString(pipeline)); pipelineConfig.addMaterialConfig(packageMaterialConfig); } }
@Override protected void updateConfig(CruiseConfig cruiseConfig) { PackageDefinition packageDefinition = createNewPackageDefinition(cruiseConfig); packageMaterialConfig = (PackageMaterialConfig) cruiseConfig.pipelineConfigByName(new CaseInsensitiveString(pipeline)).materialConfigs().get(packageMaterialConfig); packageMaterialConfig.setPackageDefinition(packageDefinition); } }
@Override protected void updateConfig(CruiseConfig cruiseConfig) { PackageDefinition packageDefinition = getPackageDefinition(cruiseConfig); packageMaterialConfig = (PackageMaterialConfig) cruiseConfig.pipelineConfigByName(new CaseInsensitiveString(pipeline)).materialConfigs().get(packageMaterialConfig); packageMaterialConfig.setPackageDefinition(packageDefinition); } }
public static PackageMaterialConfig fromJSON(JsonReader jsonReader, ConfigHelperOptions options) { PackageMaterialConfig packageMaterialConfig = new PackageMaterialConfig(); // Pass along options or the cruise config object. CruiseConfig cruiseConfig = options.getCruiseConfig(); String ref = jsonReader.getString("ref"); packageMaterialConfig.setPackageDefinition(cruiseConfig.getPackageRepositories().findPackageDefinitionWith(ref)); packageMaterialConfig.setPackageId(ref); return packageMaterialConfig; } }
public static PackageMaterialConfig fromJSON(JsonReader jsonReader, ConfigHelperOptions options) { PackageMaterialConfig packageMaterialConfig = new PackageMaterialConfig(); // Pass along options or the cruise config object. CruiseConfig cruiseConfig = options.getCruiseConfig(); String ref = jsonReader.getString("ref"); packageMaterialConfig.setPackageDefinition(cruiseConfig.getPackageRepositories().findPackageDefinitionWith(ref)); packageMaterialConfig.setPackageId(ref); return packageMaterialConfig; } }
@Test public void shouldSetPackageIdAsNullIfPackageDefinitionIsNull(){ PackageMaterialConfig materialConfig = new PackageMaterialConfig("1"); materialConfig.setPackageDefinition(null); assertThat(materialConfig.getPackageId(), is(nullValue())); assertThat(materialConfig.getPackageDefinition(), is(nullValue())); }
@Test public void shouldGetNameFromRepoNameAndPackageName() { PackageMaterialConfig materialConfig = new PackageMaterialConfig(); PackageRepository repository = PackageRepositoryMother.create("repo-id", "repo-name", "pluginid", "version", new Configuration(ConfigurationPropertyMother.create("k1", false, "v1"))); materialConfig.setPackageDefinition(PackageDefinitionMother.create("p-id", "package-name", new Configuration(ConfigurationPropertyMother.create("k2", false, "v2")), repository)); assertThat(materialConfig.getName().toString(), is("repo-name:package-name")); materialConfig.setPackageDefinition(null); assertThat(materialConfig.getName(), is(nullValue())); }
@Test public void shouldCheckEquals() throws Exception { PackageRepository repository = PackageRepositoryMother.create("repo-id", "repo-name", "pluginid", "version", new Configuration(ConfigurationPropertyMother.create("k1", false, "v1"))); PackageDefinition packageDefinition = PackageDefinitionMother.create("p-id", "package-name", new Configuration(ConfigurationPropertyMother.create("k2", false, "v2")), repository); PackageMaterialConfig p1 = new PackageMaterialConfig(); p1.setPackageDefinition(packageDefinition); PackageMaterialConfig p2 = new PackageMaterialConfig(); p2.setPackageDefinition(packageDefinition); assertThat(p1.equals(p2), is(true)); p1 = new PackageMaterialConfig(); p2 = new PackageMaterialConfig(); assertThat(p1.equals(p2), is(true)); p2.setPackageDefinition(packageDefinition); assertThat(p1.equals(p2), is(false)); p1.setPackageDefinition(packageDefinition); p2 = new PackageMaterialConfig(); assertThat(p1.equals(p2), is(false)); assertThat(p1.equals(null), is(false)); }
public static PackageMaterialConfig packageMaterialConfig(String repoName, String packageName) { PackageMaterialConfig material = new PackageMaterialConfig("p-id"); PackageRepository repository = PackageRepositoryMother.create("repo-id", repoName, "pluginid", "version", new Configuration(ConfigurationPropertyMother.create("k1", false, "repo-v1"), ConfigurationPropertyMother.create("k2", false, "repo-v2"))); PackageDefinition packageDefinition = PackageDefinitionMother.create("p-id", packageName, new Configuration(ConfigurationPropertyMother.create("k3", false, "package-v1")), repository); material.setPackageDefinition(packageDefinition); repository.getPackages().add(packageDefinition); return material; }
@Test public void shouldFailValidationIfPackageTypeMaterialForPipelineHasARefToNonExistantPackage() throws Exception { CruiseConfig configToSave = new BasicCruiseConfig(); String packageId = "does-not-exist"; PackageMaterialConfig packageMaterialConfig = new PackageMaterialConfig(packageId); PackageRepository repository = com.thoughtworks.go.domain.packagerepository.PackageRepositoryMother.create("repo-id", "repo-name", "pluginid", "version", new Configuration(com.thoughtworks.go.domain.packagerepository.ConfigurationPropertyMother.create("k1", false, "v1"))); packageMaterialConfig.setPackageDefinition( com.thoughtworks.go.domain.packagerepository.PackageDefinitionMother.create("does-not-exist", "package-name", new Configuration(com.thoughtworks.go.domain.packagerepository.ConfigurationPropertyMother.create("k2", false, "v2")), repository)); configToSave.addPipeline("default", com.thoughtworks.go.helper.PipelineConfigMother.pipelineConfig("test", new MaterialConfigs(packageMaterialConfig), new JobConfigs(new JobConfig("ls")))); try { xmlWriter.write(configToSave, output, false); fail("should not allow this"); } catch (XsdValidationException exception) { assertThat(exception.getMessage(), is("Key 'packageIdReferredByMaterial' with value 'does-not-exist' not found for identity constraint of element 'cruise'.")); } }
@Test public void shouldAllowPackageTypeMaterialForPipeline() throws Exception { CruiseConfig configToSave = new BasicCruiseConfig(); PackageRepository packageRepository = new PackageRepository(); packageRepository.setId("id"); packageRepository.setName("name"); packageRepository.setPluginConfiguration(new PluginConfiguration("plugin-id", "version")); packageRepository.setConfiguration(new Configuration(getConfigurationProperty("url", false, "http://go"))); String packageId = "id"; PackageDefinition expectedPackageDefinition = new PackageDefinition(packageId, "name", new Configuration(getConfigurationProperty("name", false, "go-agent"))); expectedPackageDefinition.setRepository(packageRepository); packageRepository.getPackages().add(expectedPackageDefinition); configToSave.getPackageRepositories().add(packageRepository); PackageMaterialConfig packageMaterialConfig = new PackageMaterialConfig(packageId); packageMaterialConfig.setPackageDefinition(expectedPackageDefinition); configToSave.addPipeline("default", com.thoughtworks.go.helper.PipelineConfigMother.pipelineConfig("test", new MaterialConfigs(packageMaterialConfig), new JobConfigs(new JobConfig("ls")))); xmlWriter.write(configToSave, output, false); GoConfigHolder goConfigHolder = xmlLoader.loadConfigHolder(output.toString()); PipelineConfig pipelineConfig = goConfigHolder.config.pipelineConfigByName(new CaseInsensitiveString("test")); assertThat(pipelineConfig.materialConfigs().get(0) instanceof PackageMaterialConfig, is(true)); assertThat(((PackageMaterialConfig) pipelineConfig.materialConfigs().get(0)).getPackageId(), is(packageId)); PackageDefinition packageDefinition = goConfigHolder.config.getPackageRepositories().first().getPackages().first(); assertThat(((PackageMaterialConfig) pipelineConfig.materialConfigs().get(0)).getPackageDefinition(), is(packageDefinition)); }