MemoryUserGroupServiceConfigImpl ugconfig = new MemoryUserGroupServiceConfigImpl();
ugconfig.setName("testAdminRole");
ugconfig.setClassName(MemoryUserGroupService.class.getName());
ugconfig.setPasswordEncoderName(getPBEPasswordEncoder().getName());
ugconfig.setPasswordPolicyName(PasswordValidator.DEFAULT_NAME);
GeoServerUserGroupService ugService = new MemoryUserGroupService();
ugService.setSecurityManager(GeoServerExtensions.bean(GeoServerSecurityManager.class));
ugService.initializeFromConfig(ugconfig);
RoleCalculator calc = new RoleCalculator(ugService, service);
SortedSet<GeoServerRole> roles;
roles = calc.calculateRoles(ugService.createUserObject("user1", "abc", true));
assertTrue(roles.size()==4);
assertTrue(roles.contains(adminRole));
assertTrue(roles.contains(GeoServerRole.ADMIN_ROLE));
assertTrue(roles.contains(groupAdminRole));
assertTrue(roles.contains(GeoServerRole.GROUP_ADMIN_ROLE));
roles = calc.calculateRoles(ugService.createUserObject("user2", "abc", true));
assertTrue(roles.size()==2);
assertTrue(roles.contains(adminRole));
assertTrue(roles.contains(GeoServerRole.ADMIN_ROLE));
roles = calc.calculateRoles(ugService.createUserObject("user3", "abc", true));
assertTrue(roles.size()==1);
assertTrue(roles.contains(role1));
}