public void setSrcdir(String srcdir) { fetchTask.setSrcdir(srcdir); }
@Test public void shouldReturnSrcDirWhenSrcDirIsNotEmpty() throws Exception { FetchTask fetchTask = new FetchTask(); fetchTask.setSrcdir("folder"); assertThat(fetchTask.getSrc(), is("folder")); }
@Test public void shouldIndicateSourceIsAFileBasedOnValuePopulated() { FetchTask fetchTask = new FetchTask(); fetchTask.setSrcfile("a.txt"); assertThat(fetchTask.isSourceAFile(), is(true)); FetchTask fetchTaskWithDir = new FetchTask(); fetchTaskWithDir.setSrcdir("/a/b"); assertThat(fetchTaskWithDir.isSourceAFile(), is(false)); }
@Test public void describeTestForSrcDirAndSrcFile() throws Exception { FetchTask fetchTask = new FetchTask(new CaseInsensitiveString("mingle"), new CaseInsensitiveString("dev"), new CaseInsensitiveString("windows-3"), "cruise.zip", "dest\\subfolder"); fetchTask.setSrcdir("cruise-output"); assertThat(fetchTask.describe(), is("fetch artifact [cruise.zip] => [dest/subfolder] from [mingle/dev/windows-3]")); }
@Test public void describeTestForSrcDir() throws Exception { FetchTask fetchTask = new FetchTask(new CaseInsensitiveString("mingle"), new CaseInsensitiveString("dev"), new CaseInsensitiveString("windows-3"), "", "dest\\subfolder"); fetchTask.setSrcdir("cruise-output"); assertThat(fetchTask.describe(), is("fetch artifact [cruise-output] => [dest/subfolder] from [mingle/dev/windows-3]")); }
@Test public void shouldNormalizeSrcDir() throws Exception { FetchTask fetchTask = new FetchTask(new CaseInsensitiveString("mingle"), new CaseInsensitiveString("dev"), new CaseInsensitiveString("windows-3"), "", "dest\\subfolder"); fetchTask.setSrcdir("testfolder\\subfolder"); assertThat(fetchTask.getSrc(), is("testfolder/subfolder")); }
private void validateAndAssertIncorrectPath(String source, boolean isSourceDir, String destination, String propertyName) { StageConfig stage = upstream.getFirstStageConfig(); JobConfig job = stage.getJobs().get(0); FetchTask task = new FetchTask(upstream.name(), stage.name(), job.name(), null, destination); if (isSourceDir) { task.setSrcdir(source); } else { task.setSrcfile(source); } task.validate(ConfigSaveValidationContext.forChain(config, new BasicPipelineConfigs(), upstream, stage, job)); assertThat(task.errors().isEmpty(), is(false)); String path = propertyName.equals(FetchTask.SRC) ? source : destination; String message = String.format("Task of job '%s' in stage '%s' of pipeline '%s' has %s path '%s' which is outside the working directory.", job.name(), stage.name(), upstream.name(), propertyName, path); assertThat(task.errors().on(propertyName), is(message)); }
public FetchTask toFetchTask(CRFetchArtifactTask crTask) { FetchTask fetchTask = new FetchTask( new CaseInsensitiveString(crTask.getPipelineName() == null ? "" : crTask.getPipelineName()), new CaseInsensitiveString(crTask.getStage()), new CaseInsensitiveString(crTask.getJob()), crTask.getSource(), crTask.getDestination()); if (crTask.sourceIsDirectory()) { fetchTask.setSrcdir(crTask.getSource()); fetchTask.setSrcfile(null); } setCommonTaskMembers(fetchTask, crTask); return fetchTask; }
@Test public void shouldPopulateErrorIfSrcFileAndSrcDirBothAreDefined() { FetchTask task = new FetchTask(new CaseInsensitiveString("upstream"), new CaseInsensitiveString("stage"), new CaseInsensitiveString("job"), "src_file", "dest"); task.setSrcdir("src_dir"); task.validate(ConfigSaveValidationContext.forChain(config, upstream, upstream.getStage(new CaseInsensitiveString("stage")))); assertThat(task.errors().isEmpty(), is(false)); assertThat(task.errors().on(FetchTask.SRC), is("Only one of srcfile or srcdir is allowed at a time")); }
@Test public void shouldPopulateErrorOnSrcFileOrSrcDirOrDestIfIsNotAValidFilePathPattern() { FetchTask task = new FetchTask(new CaseInsensitiveString("upstream"), new CaseInsensitiveString("stage"), new CaseInsensitiveString("job"), "..", ".."); StageConfig stage = upstream.getStage(new CaseInsensitiveString("stage")); ValidationContext context = ConfigSaveValidationContext.forChain(config, new BasicPipelineConfigs(), upstream, stage, stage.getJobs().first()); task.validate(context); assertThat(task.errors().isEmpty(), is(false)); assertThat(task.errors().on(FetchTask.SRC), is("Task of job 'job' in stage 'stage' of pipeline 'upstream' has src path '..' which is outside the working directory.")); assertThat(task.errors().on(FetchTask.DEST), is("Task of job 'job' in stage 'stage' of pipeline 'upstream' has dest path '..' which is outside the working directory.")); task.setSrcfile(null); task.setSrcdir(".."); task.validate(context); assertThat(task.errors().on(FetchTask.SRC), is("Task of job 'job' in stage 'stage' of pipeline 'upstream' has src path '..' which is outside the working directory.")); }
@Test public void shouldPopulateAllFieldsInReturnedPropertiesForDisplay() { FetchTask fetchTask = new FetchTask(new CaseInsensitiveString("foo-pipeline"), new CaseInsensitiveString("bar-stage"), new CaseInsensitiveString("baz-job"), "quux.c", "bang-file"); assertThat(fetchTask.getPropertiesForDisplay(), hasItems(new TaskProperty("Pipeline Name", "foo-pipeline", "pipeline_name"), new TaskProperty("Stage Name", "bar-stage", "stage_name"), new TaskProperty("Job Name", "baz-job", "job_name"), new TaskProperty("Source File", "quux.c", "source_file"), new TaskProperty("Destination", "bang-file", "destination"))); assertThat(fetchTask.getPropertiesForDisplay().size(), is(5)); fetchTask = new FetchTask(new CaseInsensitiveString("foo-pipeline"), new CaseInsensitiveString("bar-stage"), new CaseInsensitiveString("baz-job"), null, "bang-file"); fetchTask.setSrcdir("foo/src"); assertThat(fetchTask.getPropertiesForDisplay(), hasItems(new TaskProperty("Pipeline Name", "foo-pipeline", "pipeline_name"), new TaskProperty("Stage Name", "bar-stage", "stage_name"), new TaskProperty("Job Name", "baz-job", "job_name"), new TaskProperty("Source Directory", "foo/src", "source_directory"), new TaskProperty("Destination", "bang-file", "destination"))); assertThat(fetchTask.getPropertiesForDisplay().size(), is(5)); fetchTask = new FetchTask(new CaseInsensitiveString(null), new CaseInsensitiveString("bar-stage"), new CaseInsensitiveString("baz-job"), null, null); assertThat(fetchTask.getPropertiesForDisplay(), hasItems(new TaskProperty("Stage Name", "bar-stage", "stage_name"), new TaskProperty("Job Name", "baz-job", "job_name"))); assertThat(fetchTask.getPropertiesForDisplay().size(), is(2)); }