jobsCount += stageConfig.getJobs().size(); for (JobConfig job : stageConfig.getJobs()) { String elasticProfileId = job.getElasticProfileId();
@Test public void shouldClearExistingJobsWhenNullGivenAsAttributeMap() throws Exception{ JobConfigs jobs = new JobConfigs(); jobs.add(new JobConfig("quux")); jobs.setConfigAttributes(null); assertThat(jobs.size(), is(0)); }
@Test public void shouldLoadStageFromXmlPartial() throws Exception { String stageXmlPartial = "<stage name=\"mingle\">\n" + " <jobs>\n" + " <job name=\"functional\">\n" + " <artifacts>\n" + " <log src=\"artifact1.xml\" dest=\"cruise-output\" />\n" + " </artifacts>\n" + " </job>\n" + " </jobs>\n" + "</stage>\n"; StageConfig stage = xmlLoader.fromXmlPartial(stageXmlPartial, StageConfig.class); assertThat(stage.name(), is(new CaseInsensitiveString("mingle"))); assertThat(stage.allBuildPlans().size(), is(1)); assertThat(stage.jobConfigByInstanceName("functional", true), is(notNullValue())); }
@Test public void shouldDeserializeGroupXml() throws Exception { String partialXml = "<pipelines group=\"group_name\">\n" + " <pipeline name=\"new_name\">\n" + " <materials>\n" + " <svn url=\"file:///tmp/foo\" />\n" + " </materials>\n" + " <stage name=\"stage_name\">\n" + " <jobs>\n" + " <job name=\"job_name\" />\n" + " </jobs>\n" + " </stage>\n" + " </pipeline>\n" + "</pipelines>"; PipelineConfigs pipelineConfigs = xmlLoader.fromXmlPartial(partialXml, BasicPipelineConfigs.class); PipelineConfig pipeline = pipelineConfigs.findBy(new CaseInsensitiveString("new_name")); assertThat(pipeline, is(notNullValue())); assertThat(pipeline.materialConfigs().size(), is(1)); MaterialConfig material = pipeline.materialConfigs().get(0); assertThat(material, is(Matchers.instanceOf(SvnMaterialConfig.class))); assertThat(material.getUriForDisplay(), is("file:///tmp/foo")); assertThat(pipeline.size(), is(1)); assertThat(pipeline.get(0).getJobs().size(), is(1)); }
@Test public void shouldAddJobsGivenInTheAttributesMapAfterClearingExistingJobs() throws Exception{ JobConfigs jobs = new JobConfigs(); jobs.add(new JobConfig("quux")); jobs.setConfigAttributes(a(m(JobConfig.NAME, "foo"), m(JobConfig.NAME, "bar"))); assertThat(jobs.get(0).name(), is(new CaseInsensitiveString("foo"))); assertThat(jobs.get(1).name(), is(new CaseInsensitiveString("bar"))); assertThat(jobs.size(), is(2)); }
@Test public void shouldValidateTree() throws Exception{ PipelineConfig pipelineConfig = PipelineConfigMother.pipelineConfig("pipeline"); JobConfigs jobs = pipelineConfig.get(0).getJobs(); jobs.add(new JobConfig("quux")); jobs.setConfigAttributes(a(m(JobConfig.NAME, "foo"), m(JobConfig.NAME, "foo"))); assertThat(jobs.size(), is(2)); JobConfig firstFoo = jobs.get(0); JobConfig secondFoo = jobs.get(1); assertThat(firstFoo.name(), is(new CaseInsensitiveString("foo"))); assertThat(secondFoo.name(), is(new CaseInsensitiveString("foo"))); assertThat(firstFoo.errors().isEmpty(), is(true)); assertThat(secondFoo.errors().isEmpty(), is(true)); jobs.validate(PipelineConfigSaveValidationContext.forChain(true, "group", pipelineConfig, pipelineConfig.get(0), jobs)); assertThat(firstFoo.errors().on(JobConfig.NAME), is("You have defined multiple jobs called 'foo'. Job names are case-insensitive and must be unique.")); assertThat(secondFoo.errors().on(JobConfig.NAME), is("You have defined multiple jobs called 'foo'. Job names are case-insensitive and must be unique.")); }
@Test public void shouldNotFailForRepeatedJobNames_shouldInsteedSetErrorsOnValidation() throws Exception{ CruiseConfig config = new BasicCruiseConfig(); PipelineConfig pipelineConfig = PipelineConfigMother.pipelineConfig("pipeline"); config.addPipeline("grp", pipelineConfig); JobConfigs jobs = pipelineConfig.get(0).getJobs(); jobs.add(new JobConfig("quux")); jobs.setConfigAttributes(a(m(JobConfig.NAME, "foo"), m(JobConfig.NAME, "foo"))); assertThat(jobs.size(), is(2)); JobConfig firstFoo = jobs.get(0); JobConfig secondFoo = jobs.get(1); assertThat(firstFoo.name(), is(new CaseInsensitiveString("foo"))); assertThat(secondFoo.name(), is(new CaseInsensitiveString("foo"))); assertThat(firstFoo.errors().isEmpty(), is(true)); assertThat(secondFoo.errors().isEmpty(), is(true)); jobs.validate(ConfigSaveValidationContext.forChain(config, config.getGroups(), config.getGroups().get(0), pipelineConfig, pipelineConfig.get(0), jobs)); assertThat(firstFoo.errors().on(JobConfig.NAME), is("You have defined multiple jobs called 'foo'. Job names are case-insensitive and must be unique.")); assertThat(secondFoo.errors().on(JobConfig.NAME), is("You have defined multiple jobs called 'foo'. Job names are case-insensitive and must be unique.")); }
assertThat(stage1.allBuildPlans().size(), is(1)); assertThat("Should require approval", stage1.requiresApproval(), is(true)); AdminsConfig admins = stage1.getApproval().getAuthConfig();