use of com.thoughtworks.go.config.materials.git.GitMaterialConfig in project gocd by gocd.
the class GoPartialConfigIntegrationTest method shouldMarkAnInvalidKnownPartialAsValidWhenLoadingAnotherPartialMakesThisOneValid_InterConfigRepoDependency.
@Test
public void shouldMarkAnInvalidKnownPartialAsValidWhenLoadingAnotherPartialMakesThisOneValid_InterConfigRepoDependency() {
ConfigRepoConfig repoConfig3 = new ConfigRepoConfig(new GitMaterialConfig("url3"), "plugin");
configHelper.addConfigRepo(repoConfig3);
PartialConfig repo1 = PartialConfigMother.withPipeline("p1_repo1", new RepoConfigOrigin(repoConfig1, "1"));
PartialConfig repo2 = PartialConfigMother.withPipeline("p2_repo2", new RepoConfigOrigin(repoConfig2, "1"));
PartialConfig repo3 = PartialConfigMother.withPipeline("p3_repo3", new RepoConfigOrigin(repoConfig3, "1"));
PipelineConfig p1 = repo1.getGroups().first().getPipelines().get(0);
PipelineConfig p2 = repo2.getGroups().first().getPipelines().get(0);
PipelineConfig p3 = repo3.getGroups().first().getPipelines().get(0);
p2.addMaterialConfig(new DependencyMaterialConfig(p1.name(), p1.first().name()));
p2.addMaterialConfig(new DependencyMaterialConfig(p3.name(), p3.first().name()));
p1.addMaterialConfig(new DependencyMaterialConfig(p3.name(), p3.first().name()));
goPartialConfig.onSuccessPartialConfig(repoConfig2, repo2);
assertThat(goConfigDao.loadConfigHolder().config.getAllPipelineNames().contains(p2.name()), is(false));
assertThat(serverHealthService.filterByScope(HealthStateScope.forPartialConfigRepo(repoConfig2)).isEmpty(), is(false));
ServerHealthState healthStateForInvalidConfigMerge = serverHealthService.filterByScope(HealthStateScope.forPartialConfigRepo(repoConfig2)).get(0);
assertThat(healthStateForInvalidConfigMerge.getMessage(), is("Invalid Merged Configuration"));
assertThat(healthStateForInvalidConfigMerge.getDescription(), is("3+ errors :: Pipeline "p1_repo1" does not exist. It is used from pipeline "p2_repo2".;; Pipeline with name 'p1_repo1' does not exist, it is defined as a dependency for pipeline 'p2_repo2' (url2 at 1);; Pipeline with name 'p3_repo3' does not exist, it is defined as a dependency for pipeline 'p2_repo2' (url2 at 1);; - Config-Repo: url2 at 1"));
assertThat(healthStateForInvalidConfigMerge.getLogLevel(), is(HealthStateLevel.ERROR));
assertThat(cachedGoPartials.lastValidPartials().isEmpty(), is(true));
assertThat(cachedGoPartials.lastKnownPartials().size(), is(1));
assertThat(cacheContainsPartial(cachedGoPartials.lastKnownPartials(), repo2), is(true));
assertThat(cacheContainsPartial(cachedGoPartials.lastKnownPartials(), repo1), is(false));
goPartialConfig.onSuccessPartialConfig(repoConfig3, repo3);
assertThat(goConfigDao.loadConfigHolder().config.getAllPipelineNames().contains(p3.name()), is(true));
assertThat(goConfigDao.loadConfigHolder().config.getAllPipelineNames().contains(p2.name()), is(false));
assertThat(goConfigDao.loadConfigHolder().config.getAllPipelineNames().contains(p1.name()), is(false));
assertThat(serverHealthService.filterByScope(HealthStateScope.forPartialConfigRepo(repoConfig3)).isEmpty(), is(true));
assertThat(cachedGoPartials.lastValidPartials().size(), is(1));
assertThat(cacheContainsPartial(cachedGoPartials.lastValidPartials(), repo2), is(false));
assertThat(cacheContainsPartial(cachedGoPartials.lastValidPartials(), repo3), is(true));
assertThat(cachedGoPartials.lastKnownPartials().size(), is(2));
assertThat(cacheContainsPartial(cachedGoPartials.lastKnownPartials(), repo2), is(true));
assertThat(cacheContainsPartial(cachedGoPartials.lastKnownPartials(), repo3), is(true));
goPartialConfig.onSuccessPartialConfig(repoConfig1, repo1);
assertThat(goConfigDao.loadConfigHolder().config.getAllPipelineNames().contains(p1.name()), is(true));
assertThat(goConfigDao.loadConfigHolder().config.getAllPipelineNames().contains(p2.name()), is(true));
assertThat(goConfigDao.loadConfigHolder().config.getAllPipelineNames().contains(p3.name()), is(true));
assertThat(serverHealthService.filterByScope(HealthStateScope.forPartialConfigRepo(repoConfig1)).isEmpty(), is(true));
assertThat(cachedGoPartials.lastValidPartials().size(), is(3));
assertThat(cacheContainsPartial(cachedGoPartials.lastValidPartials(), repo2), is(true));
assertThat(cacheContainsPartial(cachedGoPartials.lastValidPartials(), repo1), is(true));
assertThat(cacheContainsPartial(cachedGoPartials.lastValidPartials(), repo3), is(true));
assertThat(cachedGoPartials.lastKnownPartials().size(), is(3));
assertThat(cacheContainsPartial(cachedGoPartials.lastKnownPartials(), repo2), is(true));
assertThat(cacheContainsPartial(cachedGoPartials.lastKnownPartials(), repo1), is(true));
assertThat(cacheContainsPartial(cachedGoPartials.lastKnownPartials(), repo3), is(true));
}
use of com.thoughtworks.go.config.materials.git.GitMaterialConfig in project gocd by gocd.
the class GoRepoConfigDataSourceIntegrationTest method setUp.
@Before
public void setUp() throws Exception {
GoConfigFileHelper configHelper = new GoConfigFileHelper(DEFAULT_XML_WITH_2_AGENTS);
configHelper.usingCruiseConfigDao(goConfigDao).initializeConfigFile();
configHelper.onSetUp();
GoRepoConfigDataSource repoConfigDataSource = new GoRepoConfigDataSource(configWatchList, configPluginService, serverHealthService);
repoConfigDataSource.registerListener(new GoPartialConfig(repoConfigDataSource, configWatchList, goConfigService, cachedGoPartials, serverHealthService));
configHelper.addTemplate("t1", "param1", "stage");
File templateConfigRepo = temporaryFolder.newFolder();
String latestRevision = setupExternalConfigRepo(templateConfigRepo, "external_git_config_repo_referencing_template_with_params");
ConfigRepoConfig configRepoConfig = new ConfigRepoConfig(new GitMaterialConfig(templateConfigRepo.getAbsolutePath()), "gocd-xml");
configHelper.addConfigRepo(configRepoConfig);
goConfigService.forceNotifyListeners();
repoConfigDataSource.onCheckoutComplete(configRepoConfig.getMaterialConfig(), templateConfigRepo, latestRevision);
}
use of com.thoughtworks.go.config.materials.git.GitMaterialConfig in project gocd by gocd.
the class ConfigRepoConfigTest method hasMaterialWithFingerprint_shouldReturnFalseWhenFingerprintNotEquals.
@Test
public void hasMaterialWithFingerprint_shouldReturnFalseWhenFingerprintNotEquals() {
MaterialConfig configRepo = git("url", "branch");
GitMaterialConfig someRepo = git("url", "branch1");
ConfigRepoConfig config = ConfigRepoConfig.createConfigRepoConfig(configRepo, "myplugin", "id");
assertThat(config.hasMaterialWithFingerprint(someRepo.getFingerprint())).isFalse();
}
use of com.thoughtworks.go.config.materials.git.GitMaterialConfig in project gocd by gocd.
the class ConfigRepoConfigTest method newPluginProfile.
@Override
protected RuleAwarePluginProfile newPluginProfile(String id, String pluginId, ConfigurationProperty... configurationProperties) {
RuleAwarePluginProfile profile = new ConfigRepoConfig().setId(id).setPluginId(pluginId);
profile.addConfigurations(Arrays.asList(configurationProperties));
((ConfigRepoConfig) profile).setRepo(new GitMaterialConfig());
return profile;
}
use of com.thoughtworks.go.config.materials.git.GitMaterialConfig in project gocd by gocd.
the class ConfigRepoConfigTest method hasSameMaterial_shouldReturnTrueWhenFingerprintEquals_AndDestinationDirectoriesAreDifferent.
@Test
public void hasSameMaterial_shouldReturnTrueWhenFingerprintEquals_AndDestinationDirectoriesAreDifferent() {
MaterialConfig configRepo = git("url", "branch");
GitMaterialConfig someRepo = git("url", "branch");
someRepo.setFolder("someFolder");
ConfigRepoConfig config = ConfigRepoConfig.createConfigRepoConfig(configRepo, "myplugin", "id");
assertThat(config.hasSameMaterial(someRepo)).isTrue();
}
Aggregations