use of com.thoughtworks.go.helper.GoConfigMother in project gocd by gocd.
the class UpdateEnvironmentsCommandTest method shouldAddAgentToListOfEnvironment.
@Test
public void shouldAddAgentToListOfEnvironment() throws Exception {
String agentUuid = "uuid";
UpdateEnvironmentsCommand command = new UpdateEnvironmentsCommand(agentUuid, "foo, bar, baz");
CruiseConfig cruiseConfig = new GoConfigMother().defaultCruiseConfig();
cruiseConfig.addEnvironment("foo");
cruiseConfig.addEnvironment("bar");
cruiseConfig.addEnvironment("baz");
command.update(cruiseConfig);
EnvironmentsConfig environments = cruiseConfig.getEnvironments();
assertThat(environments.named(new CaseInsensitiveString("foo")).getAgents().getUuids().contains(agentUuid), is(true));
assertThat(environments.named(new CaseInsensitiveString("bar")).getAgents().getUuids().contains(agentUuid), is(true));
assertThat(environments.named(new CaseInsensitiveString("baz")).getAgents().getUuids().contains(agentUuid), is(true));
}
use of com.thoughtworks.go.helper.GoConfigMother in project gocd by gocd.
the class UpdateEnvironmentsCommandTest method shouldNotThrowUpIfEnvironmentNameIsInvalid.
@Test
public void shouldNotThrowUpIfEnvironmentNameIsInvalid() throws Exception {
String agentUuid = "uuid";
UpdateEnvironmentsCommand command = new UpdateEnvironmentsCommand(agentUuid, "foo, bar, monkey");
CruiseConfig cruiseConfig = new GoConfigMother().defaultCruiseConfig();
cruiseConfig.addEnvironment("foo");
cruiseConfig.addEnvironment("bar");
command.update(cruiseConfig);
EnvironmentsConfig environments = cruiseConfig.getEnvironments();
assertThat(environments.named(new CaseInsensitiveString("foo")).getAgents().getUuids().contains(agentUuid), is(true));
assertThat(environments.named(new CaseInsensitiveString("bar")).getAgents().getUuids().contains(agentUuid), is(true));
}
use of com.thoughtworks.go.helper.GoConfigMother in project gocd by gocd.
the class ConfigMaterialUpdaterIntegrationTest method shouldNotMergeFromInvalidConfigRepository_AndShouldKeepLastValidPart.
@Test
public void shouldNotMergeFromInvalidConfigRepository_AndShouldKeepLastValidPart() throws Exception {
String fileName = "pipe1.gocd.xml";
GoConfigMother mother = new GoConfigMother();
PipelineConfig pipelineConfig = mother.cruiseConfigWithOnePipelineGroup().getAllPipelineConfigs().get(0);
configTestRepo.addPipelineToRepositoryAndPush(fileName, pipelineConfig);
materialUpdateService.updateMaterial(material);
// time for messages to pass through all services
waitForMaterialNotInProgress();
cachedGoConfig.forceReload();
assertThat(goConfigService.hasPipelineNamed(pipelineConfig.name()), is(true));
assertThat(goConfigService.pipelineConfigNamed(pipelineConfig.name()), is(pipelineConfig));
configTestRepo.addCodeToRepositoryAndPush("badPipe.gocd.xml", "added bad config file", "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" + "<cruise xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"cruise-config.xsd\" schemaVersion=\"38\">\n" + "<pipelines group=\"changed\">\n" + " <pipeline name=\"badPipe\">\n" + " <materials>\n" + " <svn url=\"file:///tmp/foo\" />\n" + " <svn url=\"file:///tmp/foo\" />\n" + " </materials>\n" + " </pipeline>\n" + "</pipelines>" + "</cruise>");
materialUpdateService.updateMaterial(material);
// time for messages to pass through all services
waitForMaterialNotInProgress();
cachedGoConfig.forceReload();
// but we still have the old part
assertThat(goConfigService.hasPipelineNamed(pipelineConfig.name()), is(true));
assertThat(goConfigService.pipelineConfigNamed(pipelineConfig.name()), is(pipelineConfig));
// and no trace of badPipe
assertThat(goConfigService.hasPipelineNamed(new CaseInsensitiveString("badPipe")), is(false));
}
use of com.thoughtworks.go.helper.GoConfigMother in project gocd by gocd.
the class ConfigMaterialUpdaterIntegrationTest method shouldMergePipelineFromValidConfigRepository.
@Test
public void shouldMergePipelineFromValidConfigRepository() throws Exception {
String fileName = "pipe1.gocd.xml";
GoConfigMother mother = new GoConfigMother();
PipelineConfig pipelineConfig = mother.cruiseConfigWithOnePipelineGroup().getAllPipelineConfigs().get(0);
configTestRepo.addPipelineToRepositoryAndPush(fileName, pipelineConfig);
materialUpdateService.updateMaterial(material);
Assert.assertThat(materialUpdateService.isInProgress(material), is(true));
// time for messages to pass through all services
waitForMaterialNotInProgress();
cachedGoConfig.forceReload();
assertThat(goConfigService.hasPipelineNamed(pipelineConfig.name()), is(true));
assertThat(goConfigService.pipelineConfigNamed(pipelineConfig.name()), is(pipelineConfig));
}
use of com.thoughtworks.go.helper.GoConfigMother in project gocd by gocd.
the class GoConfigServiceIntegrationTest method shouldInternallyGetGoConfigInvalidExceptionOnValidationErrorAndFailWithATopLevelConfigError.
@Test
public void shouldInternallyGetGoConfigInvalidExceptionOnValidationErrorAndFailWithATopLevelConfigError() throws Exception {
String oldMd5 = goConfigService.getConfigForEditing().getMd5();
CruiseConfig user1SeeingConfig = configHelper.load();
// Setup a pipeline group in the config
new GoConfigMother().addPipelineWithGroup(user1SeeingConfig, "defaultGroup", "user1_pipeline", "user1_stage", "user1_job");
ByteArrayOutputStream os = new ByteArrayOutputStream();
configHelper.getXml(user1SeeingConfig, os);
GoConfigService.XmlPartialSaver saver = goConfigService.fileSaver(false);
saver.saveXml(os.toString(), oldMd5);
CruiseConfig configBeforePipelineGroupWasAddedAtBeginning = configHelper.load();
String md5BeforeAddingGroupAtBeginning = configBeforePipelineGroupWasAddedAtBeginning.getMd5();
// User 1 edits config XML and adds a pipeline group before the first group in config
String configXMLWithGroupAddedAtBeginning = os.toString().replace("</pipelines>", "</pipelines><pipelines group=\"first_group\"/>");
saver.saveXml(configXMLWithGroupAddedAtBeginning, md5BeforeAddingGroupAtBeginning);
// User 2 adds another pipeline group, with the same name, through UI, but using the older MD5.
HttpLocalizedOperationResult result = new HttpLocalizedOperationResult();
ConfigUpdateResponse response = goConfigService.updateConfigFromUI(new UpdateConfigFromUI() {
public void checkPermission(CruiseConfig cruiseConfig, LocalizedOperationResult result) {
}
public Validatable node(CruiseConfig cruiseConfig) {
return cruiseConfig;
}
public Validatable updatedNode(CruiseConfig cruiseConfig) {
return node(cruiseConfig);
}
public void update(Validatable config) {
CruiseConfig cruiseConfig = (CruiseConfig) config;
MaterialConfigs materials = new MaterialConfigs(MaterialConfigsMother.mockMaterialConfigs("file:///tmp/foo"));
new GoConfigMother().addPipelineWithGroup(cruiseConfig, "first_group", "up_pipeline", materials, "down_stage", "down_job");
}
public Validatable subject(Validatable node) {
return node;
}
public Validatable updatedSubject(Validatable updatedNode) {
return subject(updatedNode);
}
}, md5BeforeAddingGroupAtBeginning, new Username(new CaseInsensitiveString("admin")), result);
CruiseConfig config = response.getCruiseConfig();
assertThat(config.getMd5(), is(md5BeforeAddingGroupAtBeginning));
assertThat(result.isSuccessful(), is(false));
assertThat(result.httpCode(), is(SC_CONFLICT));
assertThat(result.message(localizer), is("Save failed. Duplicate unique value [first_group] declared for identity constraint of element \"cruise\"."));
}
Aggregations