@Override public boolean isValid(CruiseConfig preprocessedConfig) { preprocessedAdmin = preprocessedConfig.server().security().adminsConfig(); if (!preprocessedAdmin.validateTree(ConfigSaveValidationContext.forChain(preprocessedConfig))) { BasicCruiseConfig.copyErrors(preprocessedAdmin, admin); return false; } return true; }
@Test public void shouldValidateIfRoleExists() { CaseInsensitiveString roleName = new CaseInsensitiveString("admin_role"); AdminsConfig adminsConfig = new AdminsConfig(new AdminRole(roleName)); ValidationContext validationContext = mock(ValidationContext.class); SecurityConfig securityConfig = mock(SecurityConfig.class); when(validationContext.shouldNotCheckRole()).thenReturn(false); when(validationContext.getServerSecurityConfig()).thenReturn(securityConfig); when(securityConfig.isRoleExist(roleName)).thenReturn(false); assertFalse(adminsConfig.validateTree(validationContext)); assertTrue(adminsConfig.hasErrors()); assertThat(adminsConfig.errors().on("roles"), is("Role \"admin_role\" does not exist.")); } }
@Test public void shouldValidatePresenceOfUserName() { AdminsConfig adminsConfig = new AdminsConfig(new AdminUser("")); ValidationContext validationContext = mock(ValidationContext.class); assertFalse(adminsConfig.validateTree(validationContext)); assertTrue(adminsConfig.hasErrors()); assertThat(adminsConfig.errors().on("users"), is("User cannot be blank.")); }
@Test public void shouldValidateIfUserNameIsBlank() { AdminsConfig adminsConfig = new AdminsConfig(new AdminUser(new CaseInsensitiveString(""))); ValidationContext validationContext = mock(ValidationContext.class); assertFalse(adminsConfig.validateTree(validationContext)); assertTrue(adminsConfig.hasErrors()); assertThat(adminsConfig.errors().on("users"), is("User cannot be blank.")); }