public static CruiseConfig pipelineHavingJob(String pipelineName, String stageName, String jobPlanName, String filePath, String directoryPath) {
CruiseConfig config = new BasicCruiseConfig();
config.server().setArtifactsDir("logs");
JobConfig job = new JobConfig(jobPlanName);
String workingDir = new File("testdata/" + CruiseConfig.WORKING_BASE_DIR + stageName).getPath();
AntTask task = new AntTask();
task.setWorkingDirectory(workingDir);
job.addTask(task);
final BuildArtifactConfig artifactFile = new BuildArtifactConfig();
artifactFile.setSource(filePath);
job.artifactConfigs().add(artifactFile);
BuildArtifactConfig artifactDir = new BuildArtifactConfig();
artifactFile.setSource(directoryPath);
job.artifactConfigs().add(artifactDir);
PipelineConfig pipelineConfig = new PipelineConfig(new CaseInsensitiveString(pipelineName), new MaterialConfigs(new SvnMaterialConfig("file:///foo", null, null, false)), new StageConfig(
new CaseInsensitiveString(stageName), new JobConfigs(job)));
config.addPipeline(BasicPipelineConfigs.DEFAULT_GROUP, pipelineConfig);
return config;
}