TimerConfig timerConfig = mock(TimerConfig.class); when(stageConfig.validateTree(any(PipelineConfigSaveValidationContext.class))).thenReturn(true); when(materialConfigs.validateTree(any(PipelineConfigSaveValidationContext.class))).thenReturn(true); when(paramsConfig.validateTree(any(PipelineConfigSaveValidationContext.class))).thenReturn(true); when(variables.validateTree(any(PipelineConfigSaveValidationContext.class))).thenReturn(true); assertTrue(isValid); verify(stageConfig).validateTree(any(PipelineConfigSaveValidationContext.class)); verify(materialConfigs).validateTree(any(PipelineConfigSaveValidationContext.class)); verify(paramsConfig).validateTree(any(PipelineConfigSaveValidationContext.class)); verify(variables).validateTree(any(PipelineConfigSaveValidationContext.class));
TimerConfig timerConfig = mock(TimerConfig.class); when(stageConfig.validateTree(any(PipelineConfigSaveValidationContext.class))).thenReturn(false); when(materialConfigs.validateTree(any(PipelineConfigSaveValidationContext.class))).thenReturn(false); when(paramsConfig.validateTree(any(PipelineConfigSaveValidationContext.class))).thenReturn(false); when(variables.validateTree(any(PipelineConfigSaveValidationContext.class))).thenReturn(false); assertFalse(isValid); verify(stageConfig).validateTree(any(PipelineConfigSaveValidationContext.class)); verify(materialConfigs).validateTree(any(PipelineConfigSaveValidationContext.class)); verify(paramsConfig).validateTree(any(PipelineConfigSaveValidationContext.class)); verify(variables).validateTree(any(PipelineConfigSaveValidationContext.class));
@Test public void shouldFailValidationInNoMaterialPresent(){ MaterialConfigs materialConfigs = new MaterialConfigs(); assertThat(materialConfigs.validateTree(PipelineConfigSaveValidationContext.forChain(true, "group", new PipelineConfig())), is(false)); assertThat(materialConfigs.errors().firstError(), is("A pipeline must have at least one material")); }
isValid = pipelineConfig.materialConfigs().validateTree(contextForChildren) && isValid; isValid = pipelineConfig.getParams().validateTree(contextForChildren) && isValid; isValid = pipelineConfig.getVariables().validateTree(contextForChildren) && isValid;
@Test public void shouldAddErrorWhenMatchingPackageIDDoesNotExist(){ PackageMaterialConfig packageMaterialConfig = new PackageMaterialConfig(new CaseInsensitiveString("package-name"), "package-id", PackageDefinitionMother.create("package-id")); CruiseConfig config = GoConfigMother.configWithPipelines("one"); PipelineConfig pipelineConfig = config.pipelineConfigByName(new CaseInsensitiveString("one")); MaterialConfigs materialConfigs = new MaterialConfigs(packageMaterialConfig); pipelineConfig.setMaterialConfigs(materialConfigs); materialConfigs.validateTree(PipelineConfigSaveValidationContext.forChain(true, "group", config)); assertThat(pipelineConfig.materialConfigs().get(0).errors().on(packageMaterialConfig.PACKAGE_ID), is("Could not find repository for given package id:[package-id]")); }
@Test public void shouldAddErrorWhenMatchingScmConfigDoesNotExist(){ PluggableSCMMaterialConfig scmMaterialConfig = new PluggableSCMMaterialConfig(null, SCMMother.create("scm-id"), null, null); PackageMaterialConfig packageMaterialConfig = new PackageMaterialConfig(new CaseInsensitiveString("package-name"), "package-id", PackageDefinitionMother.create("package-id")); CruiseConfig config = GoConfigMother.configWithPipelines("one"); PipelineConfig pipelineConfig = config.pipelineConfigByName(new CaseInsensitiveString("one")); MaterialConfigs materialConfigs = new MaterialConfigs(scmMaterialConfig,packageMaterialConfig); pipelineConfig.setMaterialConfigs(materialConfigs); materialConfigs.validateTree(PipelineConfigSaveValidationContext.forChain(true, "group", config)); assertThat(pipelineConfig.materialConfigs().get(0).errors().on(scmMaterialConfig.SCM_ID), is("Could not find SCM for given scm-id: [scm-id].")); }
@Test public void shouldValidateTree(){ GitMaterialConfig git = new GitMaterialConfig(); git.setName(new CaseInsensitiveString("mat-name")); SvnMaterialConfig svn = new SvnMaterialConfig("url", true); svn.setName(new CaseInsensitiveString("mat-name")); P4MaterialConfig p4 = new P4MaterialConfig(); TfsMaterialConfig tfs = new TfsMaterialConfig(); HgMaterialConfig hg = new HgMaterialConfig(); MaterialConfigs materialConfigs = new MaterialConfigs(git, svn, p4, tfs, hg); PipelineConfig pipelineConfig = new PipelineConfig(new CaseInsensitiveString("p1"), new MaterialConfigs(svn)); materialConfigs.validateTree(PipelineConfigSaveValidationContext.forChain(true, "group", new BasicCruiseConfig(new BasicPipelineConfigs(pipelineConfig)), pipelineConfig)); assertThat(git.errors().on(GitMaterialConfig.MATERIAL_NAME), contains("You have defined multiple materials called 'mat-name'")); assertThat(git.errors().on(GitMaterialConfig.URL), is("URL cannot be blank")); assertThat(svn.errors().on(SvnMaterialConfig.MATERIAL_NAME), contains("You have defined multiple materials called 'mat-name'")); assertThat(p4.errors().on(P4MaterialConfig.VIEW), contains("P4 view cannot be empty.")); assertThat(tfs.errors().on(TfsMaterialConfig.URL), contains("URL cannot be blank")); assertThat(hg.errors().on(HgMaterialConfig.URL), is("URL cannot be blank")); }