@ -34,10 +34,6 @@ public class RoleHierarchyImplTests extends TestCase {
@@ -34,10 +34,6 @@ public class RoleHierarchyImplTests extends TestCase {
super ( testCaseName ) ;
}
public static void main ( String [ ] args ) {
TestRunner . run ( RoleHierarchyImplTests . class ) ;
}
public void testSimpleRoleHierarchy ( ) {
GrantedAuthority [ ] authorities0 = new GrantedAuthority [ ] { new GrantedAuthorityImpl ( "ROLE_0" ) } ;
GrantedAuthority [ ] authorities1 = new GrantedAuthority [ ] { new GrantedAuthorityImpl ( "ROLE_A" ) } ;
@ -66,6 +62,26 @@ public class RoleHierarchyImplTests extends TestCase {
@@ -66,6 +62,26 @@ public class RoleHierarchyImplTests extends TestCase {
assertTrue ( HierarchicalRolesTestHelper . containTheSameGrantedAuthorities ( roleHierarchyImpl . getReachableGrantedAuthorities ( authorities1 ) , authorities3 ) ) ;
}
public void testComplexRoleHierarchy ( ) {
GrantedAuthority [ ] authoritiesInput1 = new GrantedAuthority [ ] { new GrantedAuthorityImpl ( "ROLE_A" ) } ;
GrantedAuthority [ ] authoritiesOutput1 = new GrantedAuthority [ ] { new GrantedAuthorityImpl ( "ROLE_A" ) , new GrantedAuthorityImpl ( "ROLE_B" ) , new GrantedAuthorityImpl ( "ROLE_C" ) ,
new GrantedAuthorityImpl ( "ROLE_D" ) } ;
GrantedAuthority [ ] authoritiesInput2 = new GrantedAuthority [ ] { new GrantedAuthorityImpl ( "ROLE_B" ) } ;
GrantedAuthority [ ] authoritiesOutput2 = new GrantedAuthority [ ] { new GrantedAuthorityImpl ( "ROLE_B" ) , new GrantedAuthorityImpl ( "ROLE_D" ) } ;
GrantedAuthority [ ] authoritiesInput3 = new GrantedAuthority [ ] { new GrantedAuthorityImpl ( "ROLE_C" ) } ;
GrantedAuthority [ ] authoritiesOutput3 = new GrantedAuthority [ ] { new GrantedAuthorityImpl ( "ROLE_C" ) , new GrantedAuthorityImpl ( "ROLE_D" ) } ;
GrantedAuthority [ ] authoritiesInput4 = new GrantedAuthority [ ] { new GrantedAuthorityImpl ( "ROLE_D" ) } ;
GrantedAuthority [ ] authoritiesOutput4 = new GrantedAuthority [ ] { new GrantedAuthorityImpl ( "ROLE_D" ) } ;
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl ( ) ;
roleHierarchyImpl . setHierarchy ( "ROLE_A > ROLE_B\nROLE_A > ROLE_C\nROLE_C > ROLE_D\nROLE_B > ROLE_D" ) ;
assertTrue ( HierarchicalRolesTestHelper . containTheSameGrantedAuthorities ( roleHierarchyImpl . getReachableGrantedAuthorities ( authoritiesInput1 ) , authoritiesOutput1 ) ) ;
assertTrue ( HierarchicalRolesTestHelper . containTheSameGrantedAuthorities ( roleHierarchyImpl . getReachableGrantedAuthorities ( authoritiesInput2 ) , authoritiesOutput2 ) ) ;
assertTrue ( HierarchicalRolesTestHelper . containTheSameGrantedAuthorities ( roleHierarchyImpl . getReachableGrantedAuthorities ( authoritiesInput3 ) , authoritiesOutput3 ) ) ;
assertTrue ( HierarchicalRolesTestHelper . containTheSameGrantedAuthorities ( roleHierarchyImpl . getReachableGrantedAuthorities ( authoritiesInput4 ) , authoritiesOutput4 ) ) ;
}
public void testCyclesInRoleHierarchy ( ) {
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl ( ) ;
@ -83,6 +99,21 @@ public class RoleHierarchyImplTests extends TestCase {
@@ -83,6 +99,21 @@ public class RoleHierarchyImplTests extends TestCase {
roleHierarchyImpl . setHierarchy ( "ROLE_A > ROLE_B\nROLE_B > ROLE_C\nROLE_C > ROLE_A" ) ;
fail ( "Cycle in role hierarchy was not detected!" ) ;
} catch ( CycleInRoleHierarchyException e ) { }
try {
roleHierarchyImpl . setHierarchy ( "ROLE_A > ROLE_B\nROLE_B > ROLE_C\nROLE_C > ROLE_E\nROLE_E > ROLE_D\nROLE_D > ROLE_B" ) ;
fail ( "Cycle in role hierarchy was not detected!" ) ;
} catch ( CycleInRoleHierarchyException e ) { }
}
public void testNoCyclesInRoleHierarchy ( ) {
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl ( ) ;
try {
roleHierarchyImpl . setHierarchy ( "ROLE_A > ROLE_B\nROLE_A > ROLE_C\nROLE_C > ROLE_D\nROLE_B > ROLE_D" ) ;
} catch ( CycleInRoleHierarchyException e ) {
fail ( "A cycle in role hierarchy was incorrectly detected!" ) ;
}
}
}