@Override public void validate(ValidationContext validationContext) { validateMandatoryAttributes(); configuration.validateUniqueness(getArtifactTypeValue()); if (!new NameTypeValidator().isNameValid(id)) { errors.add("id", NameTypeValidator.errorMessage("pluggable artifact id", id)); } if (validationContext.isWithinPipelines()) { if (isNotBlank(storeId)) { final ArtifactStore artifactStore = validationContext.artifactStores().find(storeId); if (artifactStore == null) { addError("storeId", String.format("Artifact store with id `%s` does not exist. Please correct the `storeId` attribute on pipeline `%s`.", storeId, validationContext.getPipeline().name())); } } } }
@Test public void shouldCreatePluggableArtifact() { final PluggableArtifactConfig artifactConfig = new PluggableArtifactConfig("Artifact-ID", "Store-ID", create("Foo", false, "Bar")); assertThat(artifactConfig.getId(), is("Artifact-ID")); assertThat(artifactConfig.getStoreId(), is("Store-ID")); assertThat(artifactConfig.getArtifactType(), is(ArtifactType.external)); assertThat(artifactConfig.getArtifactTypeValue(), is("Pluggable Artifact")); assertThat(artifactConfig.getConfiguration().get(0), is(create("Foo", false, "Bar"))); }