@Test public void shouldErrorOutWhenDuplicateArtifactConfigsExists() { List<ArtifactConfig> plans = new ArrayList<>(); BuildArtifactConfig existingPlan = new BuildArtifactConfig("src", "dest"); plans.add(existingPlan); BuildArtifactConfig artifactPlan = new BuildArtifactConfig("src", "dest"); artifactPlan.validateUniqueness(plans); assertThat(artifactPlan.errors().isEmpty(), is(false)); assertThat(artifactPlan.errors().on(BuiltinArtifactConfig.SRC), is("Duplicate artifacts defined.")); assertThat(artifactPlan.errors().on(BuiltinArtifactConfig.DEST), is("Duplicate artifacts defined.")); assertThat(existingPlan.errors().isEmpty(), is(false)); assertThat(existingPlan.errors().on(BuiltinArtifactConfig.SRC), is("Duplicate artifacts defined.")); assertThat(existingPlan.errors().on(BuiltinArtifactConfig.DEST), is("Duplicate artifacts defined.")); }
@Test public void validate_shouldNotFailWhenComparingBuildAndTestArtifacts() { List<ArtifactConfig> plans = new ArrayList<>(); TestArtifactConfig testArtifactConfig = new TestArtifactConfig("src", "dest"); plans.add(testArtifactConfig); BuildArtifactConfig buildArtifactConfig = new BuildArtifactConfig("src", "dest"); buildArtifactConfig.validateUniqueness(plans); assertThat(buildArtifactConfig.errors().isEmpty(), is(true)); }
@Test public void validate_shouldFailIfDestDoesNotMatchAFilePattern() { BuildArtifactConfig artifactPlan = new BuildArtifactConfig("foo/bar", ".."); artifactPlan.validate(null); assertThat(artifactPlan.errors().on(BuiltinArtifactConfig.DEST), is("Invalid destination path. Destination path should match the pattern (([.]\\/)?[.][^. ]+)|([^. ].+[^. ])|([^. ][^. ])|([^. ])")); }
@Test public void validate_shouldNotFailWhenDestinationIsNotSet() { BuildArtifactConfig artifactPlan = new BuildArtifactConfig(null, null); artifactPlan.setSource("source"); artifactPlan.validate(null); assertThat(artifactPlan.errors().isEmpty(), is(true)); }
@Test public void validate_shouldFailIfSourceIsEmpty() { BuildArtifactConfig artifactPlan = new BuildArtifactConfig(null, "bar"); artifactPlan.validate(ConfigSaveValidationContext.forChain(new JobConfig("jobname"))); assertThat(artifactPlan.errors().on(BuiltinArtifactConfig.SRC), is("Job 'jobname' has an artifact with an empty source")); }