@Test public void shouldGetLocalPartsWhenOriginIsNull() { assertThat(configs.getLocal().size(), is(1)); assertThat(configs.getLocal().get(0), is(env)); } @Test
@Test public void shouldCreateEmptyEnvironmentConfigForEditsWithUIOrigin_WhenFileHasNoEnvironment_AndForEdit() { BasicCruiseConfig mainCruiseConfig = new BasicCruiseConfig(pipelines); PartialConfig partialConfig = PartialConfigMother.withEnvironment("remoteEnv"); partialConfig.setOrigins(new RepoConfigOrigin()); cruiseConfig = new BasicCruiseConfig(mainCruiseConfig, true, partialConfig); assertThat(cruiseConfig.getEnvironments().size(), is(1)); assertThat(cruiseConfig.getEnvironments().get(0) instanceof MergeEnvironmentConfig, is(true)); assertThat(cruiseConfig.getEnvironments().get(0).name(), is(new CaseInsensitiveString("remoteEnv"))); MergeEnvironmentConfig mergedEnv = (MergeEnvironmentConfig) cruiseConfig.getEnvironments().get(0); assertThat(mergedEnv.size(), is(2)); }
@Test public void shouldNotCreateMergeEnvironmentConfig_WhenFileHasNoEnvironment_AndNotForEdit() { BasicCruiseConfig mainCruiseConfig = new BasicCruiseConfig(pipelines); PartialConfig partialConfig = PartialConfigMother.withEnvironment("remoteEnv"); partialConfig.setOrigins(new RepoConfigOrigin()); cruiseConfig = new BasicCruiseConfig(mainCruiseConfig, false, partialConfig); assertThat(cruiseConfig.getEnvironments().size(), is(1)); assertThat(cruiseConfig.getEnvironments().get(0) instanceof MergeEnvironmentConfig, is(false)); assertThat(cruiseConfig.getEnvironments().get(0).name(), is(new CaseInsensitiveString("remoteEnv"))); assertThat(cruiseConfig.getEnvironments().get(0).isLocal(), is(false)); }
@Test public void shouldGetLocalPartsWhenOriginIsFile() { env.setOrigins(new FileConfigOrigin()); assertThat(configs.getLocal().size(), is(1)); assertThat(configs.getLocal().get(0), is(env)); } @Test
@Test public void shouldParseFileWithOneEnvironment() throws Exception { EnvironmentConfig env = EnvironmentConfigMother.environment("dev"); File file = helper.addFileWithEnvironment("dev-env.gocd.xml", env); PartialConfig part = xmlPartialProvider.parseFile(file); EnvironmentsConfig loadedEnvs = part.getEnvironments(); assertThat(loadedEnvs.size(),is(1)); assertThat(loadedEnvs.get(0),is(env)); }
@Test public void shouldCreateEmptyEnvironmentConfigForEditsWithUIOrigin_WhenFileHasNoEnvironmentAnd2RemoteParts_AndForEdit() { BasicCruiseConfig mainCruiseConfig = new BasicCruiseConfig(pipelines); PartialConfig partialConfig1 = PartialConfigMother.withEnvironment("remoteEnv"); partialConfig1.setOrigins(new RepoConfigOrigin()); PartialConfig partialConfig2 = PartialConfigMother.withEnvironment("remoteEnv"); partialConfig2.setOrigins(new RepoConfigOrigin()); cruiseConfig = new BasicCruiseConfig(mainCruiseConfig, true, partialConfig1, partialConfig2); assertThat(cruiseConfig.getEnvironments().size(), is(1)); assertThat(cruiseConfig.getEnvironments().get(0) instanceof MergeEnvironmentConfig, is(true)); assertThat(cruiseConfig.getEnvironments().get(0).name(), is(new CaseInsensitiveString("remoteEnv"))); MergeEnvironmentConfig mergedEnv = (MergeEnvironmentConfig) cruiseConfig.getEnvironments().get(0); assertThat(mergedEnv.size(), is(3)); }
@Test public void shouldModifyEmptyEnvironmentConfigWithUIOrigin() { BasicCruiseConfig mainCruiseConfig = new BasicCruiseConfig(pipelines); PartialConfig partialConfig = PartialConfigMother.withEnvironment("remoteEnv"); partialConfig.setOrigins(new RepoConfigOrigin()); cruiseConfig = new BasicCruiseConfig(mainCruiseConfig, true, partialConfig); cruiseConfig.getEnvironments().get(0).addAgent("agent"); MergeEnvironmentConfig mergedEnv = (MergeEnvironmentConfig) cruiseConfig.getEnvironments().get(0); assertThat(mergedEnv.getFirstEditablePart().getAgents(), hasItem(new EnvironmentAgentConfig("agent"))); }
@Test public void shouldSetConfigOriginInEnvironment_AfterLoadingConfigFile() { String content = configWithEnvironments( "<environments>" + " <environment name='uat'>" + " <agents>" + " <physical uuid='1'/>" + " <physical uuid='2'/>" + " </agents>" + " </environment>" + "</environments>"); EnvironmentsConfig environmentsConfig = ConfigMigrator.loadWithMigration(content).config.getEnvironments(); EnvironmentConfig uat = environmentsConfig.get(0); assertThat(uat.getOrigin(), is(new FileConfigOrigin())); }
@Test public void shouldRemoveAgentFromAllEnvironments() throws Exception { BasicEnvironmentConfig env2 = new BasicEnvironmentConfig(new CaseInsensitiveString("prod")); env2.addPipeline(new CaseInsensitiveString("test")); env2.addAgent("agent-one"); env2.addAgent("agent-two"); configs.add(env2); BasicEnvironmentConfig env3 = new BasicEnvironmentConfig(new CaseInsensitiveString("dev")); env3.addPipeline(new CaseInsensitiveString("build")); env3.addAgent("agent-two"); env3.addAgent("agent-three"); configs.add(env3); assertThat(configs.get(0).getAgents().size(), is(1)); assertThat(configs.get(1).getAgents().size(), is(2)); assertThat(configs.environmentsForAgent("agent-one").size(), is(2)); configs.removeAgentFromAllEnvironments("agent-one"); assertThat(configs.get(0).getAgents().size(), is(0)); assertThat(configs.get(1).getAgents().size(), is(1)); assertThat(configs.get(2).getAgents().size(), is(2)); assertThat(configs.environmentsForAgent("agent-one").size(), is(0)); assertThat(configs.environmentsForAgent("agent-two").size(), is(2)); assertThat(configs.environmentsForAgent("agent-three").size(), is(1)); }
@Test public void shouldNotCreateEmptyEnvironmentConfigForEditsWithUIOrigin_WhenFileHasEnvironment_AndForEdit() { BasicCruiseConfig mainCruiseConfig = new BasicCruiseConfig(pipelines); mainCruiseConfig.addEnvironment(new BasicEnvironmentConfig(new CaseInsensitiveString("Env"))); mainCruiseConfig.setOrigins(new FileConfigOrigin()); PartialConfig partialConfig = PartialConfigMother.withEnvironment("Env"); partialConfig.setOrigins(new RepoConfigOrigin()); cruiseConfig = new BasicCruiseConfig(mainCruiseConfig, true, partialConfig); assertThat(cruiseConfig.getEnvironments().size(), is(1)); assertThat(cruiseConfig.getEnvironments().get(0) instanceof MergeEnvironmentConfig, is(true)); assertThat(cruiseConfig.getEnvironments().get(0).name(), is(new CaseInsensitiveString("Env"))); MergeEnvironmentConfig mergedEnv = (MergeEnvironmentConfig) cruiseConfig.getEnvironments().get(0); assertThat(mergedEnv.size(), is(2)); assertThat(mergedEnv.get(0).isLocal(), is(true)); assertThat(mergedEnv.get(1).isLocal(), is(false)); }
@Test public void shouldLoadDirectoryWithTwoPipelineGroupsAndEnvironment() throws Exception { GoConfigMother mother = new GoConfigMother(); PipelineGroups groups = mother.cruiseConfigWithTwoPipelineGroups().getGroups(); EnvironmentConfig env = EnvironmentConfigMother.environment("dev"); helper.addFileWithPipelineGroup("group1.gocd.xml", groups.get(0)); helper.addFileWithPipelineGroup("group2.gocd.xml", groups.get(1)); helper.addFileWithEnvironment("dev-env.gocd.xml", env); PartialConfig part = xmlPartialProvider.load(tmpFolder, mock(PartialConfigLoadContext.class)); PipelineGroups groupsRead = part.getGroups(); assertThat(groupsRead.size(),is(2)); EnvironmentsConfig loadedEnvs = part.getEnvironments(); assertThat(loadedEnvs.size(),is(1)); assertThat(loadedEnvs.get(0),is(env)); }
@Test public void shouldAllowCDATAInEnvironmentVariableValues() throws Exception { //TODO : This should be fixed as part of #4865 //String multiLinedata = "\nsome data\nfoo bar"; String multiLinedata = "some data\nfoo bar"; String content = configWithEnvironmentsAndAgents( "<environments>" + " <environment name='uat'>" + " <environmentvariables> " + " <variable name='cdata'><value><![CDATA[" + multiLinedata + "]]></value></variable>" + " </environmentvariables> " + " </environment>" + "</environments>", "<agents>" + " <agent uuid='1' hostname='test1.com' ipaddress='192.168.0.1' isDisabled='true' />" + "</agents>"); CruiseConfig config = ConfigMigrator.loadWithMigration(content).config; EnvironmentConfig element = new BasicEnvironmentConfig(new CaseInsensitiveString("uat")); element.addEnvironmentVariable("cdata", multiLinedata); assertThat(config.getEnvironments().get(0), is(element)); }
@Test public void shouldModifyEnvironmentConfigWithFileOrigin() { BasicCruiseConfig mainCruiseConfig = new BasicCruiseConfig(pipelines); BasicEnvironmentConfig envInFile = new BasicEnvironmentConfig(new CaseInsensitiveString("Env")); mainCruiseConfig.addEnvironment(envInFile); mainCruiseConfig.setOrigins(new FileConfigOrigin()); PartialConfig partialConfig = PartialConfigMother.withEnvironment("Env"); partialConfig.setOrigins(new RepoConfigOrigin()); cruiseConfig = new BasicCruiseConfig(mainCruiseConfig, true, partialConfig); cruiseConfig.getEnvironments().get(0).addAgent("agent"); assertThat(envInFile.getAgents(), hasItem(new EnvironmentAgentConfig("agent"))); }