@Test public void shouldReturnAllErrorMessagesOnCruiseConfig(){ BasicCruiseConfig cruiseConfig = GoConfigMother.defaultCruiseConfig(); cruiseConfig.addError("BasicCruiseConfig_key", "BasicCruiseConfig_error"); PipelineConfig pipelineConfig = PipelineConfigMother.pipelineConfig(""); pipelineConfig.addError("PipelineConfig_key", "PipelineConfig_error"); cruiseConfig.addPipeline("default", pipelineConfig); GoConfigInvalidException exception = new GoConfigInvalidException(cruiseConfig, ""); assertThat(exception.getAllErrorMessages(), is("BasicCruiseConfig_error, PipelineConfig_error")); }
@Test public void shouldCheckForPipelineNameUniqueness() { BasicCruiseConfig cruiseConfig = GoConfigMother.configWithPipelines("p1"); String group = "group"; cruiseConfig.getGroups().add(new BasicPipelineConfigs(group, new Authorization())); PipelineConfig p1Duplicate = GoConfigMother.createPipelineConfigWithMaterialConfig("p1", new GitMaterialConfig("url")); cruiseConfig.addPipeline(group, p1Duplicate); PipelineConfigSaveValidationContext context = PipelineConfigSaveValidationContext.forChain(true, group, cruiseConfig, p1Duplicate); p1Duplicate.validateTree(context); assertThat(p1Duplicate.errors().on(PipelineConfig.NAME), is(String.format("You have defined multiple pipelines named '%s'. Pipeline names must be unique. Source(s): [cruise-config.xml]", p1Duplicate.name()))); }
@Test public void shouldValidateGroupNameWhenPipelineIsBeingCreatedUnderANonExistantGroup() { BasicCruiseConfig cruiseConfig = GoConfigMother.configWithPipelines("p1"); PipelineConfig p1 = cruiseConfig.getPipelineConfigByName(new CaseInsensitiveString("p1")); String groupName = "%$-with-invalid-characters"; cruiseConfig.addPipeline(groupName, p1); p1.validateTree(PipelineConfigSaveValidationContext.forChain(true, groupName, cruiseConfig, p1)); assertFalse(p1.errors().isEmpty()); assertThat(p1.errors().on(PipelineConfigs.GROUP), contains("Invalid group name '%$-with-invalid-characters'")); }
@Test public void shouldValidateTree() { Approval approval = new Approval(new AuthConfig(new AdminRole(new CaseInsensitiveString("role")))); BasicCruiseConfig cruiseConfig = GoConfigMother.defaultCruiseConfig(); cruiseConfig.server().security().adminsConfig().addRole(new AdminRole(new CaseInsensitiveString("super-admin"))); PipelineConfig pipelineConfig = new PipelineConfig(new CaseInsensitiveString("p1"), new MaterialConfigs()); cruiseConfig.addPipeline("g1", pipelineConfig); assertThat(approval.validateTree(PipelineConfigSaveValidationContext.forChain(true, "g1", cruiseConfig, pipelineConfig)), is(false)); assertThat(approval.getAuthConfig().errors().isEmpty(), is(false)); }