Search in sources :

Example 36 with HgMaterialConfig

use of com.thoughtworks.go.config.materials.mercurial.HgMaterialConfig in project gocd by gocd.

the class MaterialConfigsTest method shouldClearExistingAndSetHgConfigAttributesForMaterial.

@Test
public void shouldClearExistingAndSetHgConfigAttributesForMaterial() {
    MaterialConfigs materialConfigs = new MaterialConfigs();
    materialConfigs.add(new HgMaterialConfig("", null));
    materialConfigs.add(new SvnMaterialConfig("", "", "", false));
    Map<String, String> hashMap = new HashMap<>();
    hashMap.put(HgMaterialConfig.URL, "foo");
    Map<String, Object> attributeMap = new HashMap<>();
    attributeMap.put(AbstractMaterialConfig.MATERIAL_TYPE, HgMaterialConfig.TYPE);
    attributeMap.put(HgMaterialConfig.TYPE, hashMap);
    materialConfigs.setConfigAttributes(attributeMap);
    assertThat(materialConfigs.size(), is(1));
    assertThat(materialConfigs.first(), is(new HgMaterialConfig("foo", null)));
}
Also used : HashMap(java.util.HashMap) HgMaterialConfig(com.thoughtworks.go.config.materials.mercurial.HgMaterialConfig) Matchers.containsString(org.hamcrest.Matchers.containsString) SvnMaterialConfig(com.thoughtworks.go.config.materials.svn.SvnMaterialConfig) Test(org.junit.Test)

Example 37 with HgMaterialConfig

use of com.thoughtworks.go.config.materials.mercurial.HgMaterialConfig in project gocd by gocd.

the class MaterialConfigsTest method shouldFailIfMultipleMaterialsDoNotHaveDestinationFolderSet.

@Test
public void shouldFailIfMultipleMaterialsDoNotHaveDestinationFolderSet() {
    HgMaterialConfig materialConfigOne = new HgMaterialConfig("http://url1", null);
    materialConfigOne.setConfigAttributes(Collections.singletonMap(ScmMaterialConfig.FOLDER, "folder"));
    HgMaterialConfig materialConfigTwo = new HgMaterialConfig("http://url2", null);
    PluggableSCMMaterialConfig materialConfigThree = new PluggableSCMMaterialConfig(null, SCMMother.create("scm-id"), null, null);
    CruiseConfig config = GoConfigMother.configWithPipelines("one");
    PipelineConfig pipelineOne = config.pipelineConfigByName(new CaseInsensitiveString("one"));
    pipelineOne.setMaterialConfigs((new MaterialConfigs(materialConfigOne, materialConfigTwo, materialConfigThree)));
    pipelineOne.materialConfigs().validate(ConfigSaveValidationContext.forChain(config));
    assertThat(pipelineOne.materialConfigs().get(0).errors().isEmpty(), is(true));
    assertThat(pipelineOne.materialConfigs().get(1).errors().on(ScmMaterialConfig.FOLDER), is("Destination directory is required when specifying multiple scm materials"));
    assertThat(pipelineOne.materialConfigs().get(2).errors().on(PluggableSCMMaterialConfig.FOLDER), is("Destination directory is required when specifying multiple scm materials"));
}
Also used : HgMaterialConfig(com.thoughtworks.go.config.materials.mercurial.HgMaterialConfig) Test(org.junit.Test)

Example 38 with HgMaterialConfig

use of com.thoughtworks.go.config.materials.mercurial.HgMaterialConfig in project gocd by gocd.

the class MaterialConfigsTest method shouldNotThrowUpOnMaterialIfAutoUpdateValuesAreCorrect.

@Test
public void shouldNotThrowUpOnMaterialIfAutoUpdateValuesAreCorrect() throws Exception {
    HgMaterialConfig materialOne = new HgMaterialConfig("http://url1", null);
    materialOne.setAutoUpdate(true);
    HgMaterialConfig materialTwo = new HgMaterialConfig("http://url1", null);
    materialTwo.setAutoUpdate(true);
    CruiseConfig config = GoConfigMother.configWithPipelines("one", "two", "three");
    PipelineConfig pipelineOne = config.pipelineConfigByName(new CaseInsensitiveString("one"));
    pipelineOne.setMaterialConfigs(new MaterialConfigs(materialOne));
    PipelineConfig pipelineTwo = config.pipelineConfigByName(new CaseInsensitiveString("two"));
    pipelineTwo.setMaterialConfigs(new MaterialConfigs(materialTwo));
    pipelineOne.materialConfigs().validate(ConfigSaveValidationContext.forChain(config));
    assertThat(pipelineOne.materialConfigs().get(0).errors().isEmpty(), is(true));
    assertThat(pipelineTwo.materialConfigs().get(0).errors().isEmpty(), is(true));
}
Also used : HgMaterialConfig(com.thoughtworks.go.config.materials.mercurial.HgMaterialConfig) Test(org.junit.Test)

Example 39 with HgMaterialConfig

use of com.thoughtworks.go.config.materials.mercurial.HgMaterialConfig in project gocd by gocd.

the class MaterialConfigsTest method shouldFailIfAllScmMaterialsInAPipelineHaveSameFolders.

@Test
public void shouldFailIfAllScmMaterialsInAPipelineHaveSameFolders() throws IOException {
    HgMaterialConfig materialOne = new HgMaterialConfig("http://url1", null);
    materialOne.setConfigAttributes(Collections.singletonMap(ScmMaterialConfig.FOLDER, "folder1"));
    HgMaterialConfig materialTwo = new HgMaterialConfig("http://url2", null);
    materialTwo.setConfigAttributes(Collections.singletonMap(ScmMaterialConfig.FOLDER, "folder1"));
    PluggableSCMMaterialConfig materialThree = new PluggableSCMMaterialConfig(null, SCMMother.create("scm-id"), "folder1", null);
    CruiseConfig config = GoConfigMother.configWithPipelines("one");
    PipelineConfig pipelineOne = config.pipelineConfigByName(new CaseInsensitiveString("one"));
    pipelineOne.setMaterialConfigs(new MaterialConfigs(materialOne, materialTwo, materialThree));
    pipelineOne.materialConfigs().validate(ConfigSaveValidationContext.forChain(config));
    String conflictingDirMessage = "Invalid Destination Directory. Every material needs a different destination directory and the directories should not be nested.";
    assertThat(pipelineOne.materialConfigs().get(0).errors().on(ScmMaterialConfig.FOLDER), is(conflictingDirMessage));
    assertThat(pipelineOne.materialConfigs().get(1).errors().on(ScmMaterialConfig.FOLDER), is(conflictingDirMessage));
    assertThat(pipelineOne.materialConfigs().get(2).errors().on(PluggableSCMMaterialConfig.FOLDER), is(conflictingDirMessage));
}
Also used : HgMaterialConfig(com.thoughtworks.go.config.materials.mercurial.HgMaterialConfig) Matchers.containsString(org.hamcrest.Matchers.containsString) Test(org.junit.Test)

Example 40 with HgMaterialConfig

use of com.thoughtworks.go.config.materials.mercurial.HgMaterialConfig in project gocd by gocd.

the class MaterialConfigsTest method shouldNotFailIfMultipleMaterialsHaveUniqueDestinationFolderSet.

@Test
public void shouldNotFailIfMultipleMaterialsHaveUniqueDestinationFolderSet() {
    HgMaterialConfig materialOne = new HgMaterialConfig("http://url1", null);
    materialOne.setConfigAttributes(Collections.singletonMap(ScmMaterialConfig.FOLDER, "folder"));
    HgMaterialConfig materialTwo = new HgMaterialConfig("http://url2", null);
    materialTwo.setConfigAttributes(Collections.singletonMap(ScmMaterialConfig.FOLDER, "folder2"));
    CruiseConfig config = GoConfigMother.configWithPipelines("one");
    PipelineConfig pipelineOne = config.pipelineConfigByName(new CaseInsensitiveString("one"));
    pipelineOne.setMaterialConfigs(new MaterialConfigs(materialOne, materialTwo));
    pipelineOne.materialConfigs().validate(ConfigSaveValidationContext.forChain(config));
    assertThat(pipelineOne.materialConfigs().get(0).errors().isEmpty(), is(true));
    assertThat(pipelineOne.materialConfigs().get(1).errors().isEmpty(), is(true));
}
Also used : HgMaterialConfig(com.thoughtworks.go.config.materials.mercurial.HgMaterialConfig) Test(org.junit.Test)

Aggregations

HgMaterialConfig (com.thoughtworks.go.config.materials.mercurial.HgMaterialConfig)73 Test (org.junit.Test)60 SvnMaterialConfig (com.thoughtworks.go.config.materials.svn.SvnMaterialConfig)15 DependencyMaterialConfig (com.thoughtworks.go.config.materials.dependency.DependencyMaterialConfig)12 MaterialConfigs (com.thoughtworks.go.config.materials.MaterialConfigs)11 GitMaterialConfig (com.thoughtworks.go.config.materials.git.GitMaterialConfig)11 P4MaterialConfig (com.thoughtworks.go.config.materials.perforce.P4MaterialConfig)11 HgMaterial (com.thoughtworks.go.config.materials.mercurial.HgMaterial)10 ServerHealthStateOperationResult (com.thoughtworks.go.server.service.result.ServerHealthStateOperationResult)9 CaseInsensitiveString (com.thoughtworks.go.config.CaseInsensitiveString)8 PipelineConfig (com.thoughtworks.go.config.PipelineConfig)8 TfsMaterialConfig (com.thoughtworks.go.config.materials.tfs.TfsMaterialConfig)8 MaterialConfig (com.thoughtworks.go.domain.materials.MaterialConfig)7 PackageMaterialConfig (com.thoughtworks.go.config.materials.PackageMaterialConfig)6 PluggableSCMMaterialConfig (com.thoughtworks.go.config.materials.PluggableSCMMaterialConfig)6 ConfigRepoConfig (com.thoughtworks.go.config.remote.ConfigRepoConfig)5 MaterialRevisions (com.thoughtworks.go.domain.MaterialRevisions)5 Filter (com.thoughtworks.go.config.materials.Filter)4 RepoConfigOrigin (com.thoughtworks.go.config.remote.RepoConfigOrigin)4 HgUrlArgument (com.thoughtworks.go.util.command.HgUrlArgument)4