/**
* Copyright (c) 2013-2016, The SeedStack authors <http://seedstack.org>
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package org.seedstack.seed.security.internal.authorization;
import com.google.common.collect.Sets;
import org.fest.reflect.core.Reflection;
import org.fest.reflect.reference.TypeRef;
import org.junit.Before;
import org.junit.Test;
import org.seedstack.seed.security.Role;
import org.seedstack.seed.security.SecurityConfig;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import static org.junit.Assert.assertTrue;
public class ConfigurationRolePermissionResolverUnitTest {
ConfigurationRolePermissionResolver underTest;
@Before
public void before() {
underTest = new ConfigurationRolePermissionResolver();
}
@Test
public void resolvePermissionsInRole_should_return_permissions() {
Map<String, Set<String>> rolesMap = Reflection.field("roles").ofType(new TypeRef<Map<String, Set<String>>>() {}).in(underTest).get();
Set<String> permissions = new HashSet<>();
permissions.add("bar");
rolesMap.put("foo", permissions);
underTest.resolvePermissionsInRole(new Role("foo"));
}
@Test
public void readConfiguration_should_build_roles() {
SecurityConfig securityConfig = new SecurityConfig().addRolePermissions("foo", Sets.newHashSet("bar", "foobar"));
underTest.readConfiguration(securityConfig);
Map<String, Set<String>> map = Reflection.field("roles").ofType(new TypeRef<Map<String, Set<String>>>() {}).in(underTest).get();
Set<String> permissions = map.get("foo");
assertTrue(permissions.contains("bar"));
assertTrue(permissions.contains("foobar"));
}
}