@Test public void shouldNotAddErrorDuringUniquenessValidationIfMaterialNameIsEmpty() throws Exception { PackageMaterialConfig packageMaterialConfig = new PackageMaterialConfig(""); Map<CaseInsensitiveString, AbstractMaterialConfig> nameToMaterialMap = new HashMap<>(); packageMaterialConfig.validateNameUniqueness(nameToMaterialMap); assertThat(packageMaterialConfig.errors().getAll().size(), is(0)); assertThat(nameToMaterialMap.size(), is(0)); }
@Test public void shouldPassMaterialUniquenessIfIfNoDuplicateMaterialFound() throws Exception { PackageMaterialConfig packageMaterialConfig = new PackageMaterialConfig("package-id"); Map<CaseInsensitiveString, AbstractMaterialConfig> nameToMaterialMap = new HashMap<>(); nameToMaterialMap.put(new CaseInsensitiveString("repo-name:pkg-name"), new PackageMaterialConfig("package-id-new")); nameToMaterialMap.put(new CaseInsensitiveString("foo"), new GitMaterialConfig("url")); packageMaterialConfig.validateNameUniqueness(nameToMaterialMap); assertThat(packageMaterialConfig.errors().getAll().size(), is(0)); assertThat(nameToMaterialMap.size(), is(3)); }
@Test public void shouldAddErrorIfMaterialNameUniquenessValidationFails() throws Exception { PackageMaterialConfig packageMaterialConfig = new PackageMaterialConfig("package-id"); Map<CaseInsensitiveString, AbstractMaterialConfig> nameToMaterialMap = new HashMap<>(); PackageMaterialConfig existingMaterial = new PackageMaterialConfig("package-id"); nameToMaterialMap.put(new CaseInsensitiveString("package-id"), existingMaterial); nameToMaterialMap.put(new CaseInsensitiveString("foo"), new GitMaterialConfig("url")); packageMaterialConfig.validateNameUniqueness(nameToMaterialMap); assertThat(packageMaterialConfig.errors().getAll().size(), is(1)); assertThat(packageMaterialConfig.errors().on(PackageMaterialConfig.PACKAGE_ID), is("Duplicate package material detected!")); assertThat(existingMaterial.errors().getAll().size(), is(1)); assertThat(existingMaterial.errors().on(PackageMaterialConfig.PACKAGE_ID), is("Duplicate package material detected!")); assertThat(nameToMaterialMap.size(), is(2)); }