| 
<?phprequire_once __DIR__."/base.php";
 class LibRbacUsersTest extends PHPRBAC_Test
 {
 function testAssign()
 {
 $ID1 = jf::$RBAC->Roles->Add ( "role1", "" );
 $ID11 = jf::$RBAC->Roles->Add ( "role1-1", "", $ID1 );
 $ID111 = jf::$RBAC->Roles->Add ( "role1-1-1", "", $ID11 );
 
 $ID2 = jf::$RBAC->Roles->Add ( "role2", "" );
 $ID21 = jf::$RBAC->Roles->Add ( "role2-1", "", $ID2 );
 $ID211 = jf::$RBAC->Roles->Add ( "role2-1-1", "", $ID21 );
 
 
 $UID = 3;
 $this->assertTrue ( jf::$RBAC->Users->Assign ( $ID21, $UID ) );
 $this->assertFalse ( jf::$RBAC->Users->Assign ( $ID21, $UID ) );
 }
 
 /**
 * @depends testAssign
 */
 function testUnassign()
 {
 $ID1 = jf::$RBAC->Roles->Add ( "role1", "" );
 $ID11 = jf::$RBAC->Roles->Add ( "role1-1", "", $ID1 );
 $ID111 = jf::$RBAC->Roles->Add ( "role1-1-1", "", $ID11 );
 
 $ID2 = jf::$RBAC->Roles->Add ( "role2", "" );
 $ID21 = jf::$RBAC->Roles->Add ( "role2-1", "", $ID2 );
 $ID211 = jf::$RBAC->Roles->Add ( "role2-1-1", "", $ID21 );
 
 
 $UID = 2;
 $this->assertTrue ( jf::$RBAC->Users->Assign ( $ID21, $UID ) );
 $this->assertTrue ( jf::$RBAC->Users->Unassign ( $ID21, $UID ) );
 $this->assertFalse ( jf::$RBAC->Users->Unassign ( $ID21, $UID ) );
 $this->assertTrue ( jf::$RBAC->Users->Assign ( $ID21, $UID ) );
 }
 function testAllRoles()
 {
 $ID1 = jf::$RBAC->Roles->Add ( "role1", "" );
 $ID11 = jf::$RBAC->Roles->Add ( "role1-1", "", $ID1 );
 $ID111 = jf::$RBAC->Roles->Add ( "role1-1-1", "", $ID11 );
 
 $ID2 = jf::$RBAC->Roles->Add ( "role2", "" );
 $ID21 = jf::$RBAC->Roles->Add ( "role2-1", "", $ID2 );
 $ID211 = jf::$RBAC->Roles->Add ( "role2-1-1", "", $ID21 );
 
 
 $UID = 2;
 
 $this->assertEquals ( null, jf::$RBAC->Users->AllRoles($UID) );
 
 jf::$RBAC->Users->Assign ( $ID21, $UID );
 $res=jf::$RBAC->Users->AllRoles( $UID );
 $this->assertArrayHasKey("Title", $res[0]);
 $this->assertArrayHasKey("ID", $res[0]);
 $this->assertEquals($ID21, $res[0]['ID']);
 
 
 #new
 jf::$RBAC->Users->Assign ( $ID211, $UID );
 $this->assertEquals ( 2, count(jf::$RBAC->Users->AllRoles ( $UID ) ));
 
 }
 function testRoleCount()
 {
 $ID1 = jf::$RBAC->Roles->Add ( "role1", "" );
 $ID11 = jf::$RBAC->Roles->Add ( "role1-1", "", $ID1 );
 $ID111 = jf::$RBAC->Roles->Add ( "role1-1-1", "", $ID11 );
 
 $ID2 = jf::$RBAC->Roles->Add ( "role2", "" );
 $ID21 = jf::$RBAC->Roles->Add ( "role2-1", "", $ID2 );
 $ID211 = jf::$RBAC->Roles->Add ( "role2-1-1", "", $ID21 );
 
 
 $UID = 2;
 $this->assertEquals ( 0, jf::$RBAC->Users->RoleCount ( $UID ) );
 
 jf::$RBAC->Users->Assign ( $ID21, $UID );
 $this->assertEquals ( 1, jf::$RBAC->Users->RoleCount ( $UID ) );
 
 #same
 jf::$RBAC->Users->Assign ( $ID21, $UID );
 $this->assertEquals ( 1, jf::$RBAC->Users->RoleCount ( $UID ) );
 
 #new
 jf::$RBAC->Users->Assign ( $ID211, $UID );
 $this->assertEquals ( 2, jf::$RBAC->Users->RoleCount ( $UID ) );
 
 #to another user
 jf::$RBAC->Users->Assign ( $ID211, 1 );
 $this->assertEquals ( 2, jf::$RBAC->Users->RoleCount ( $UID ) );
 }
 
 /**
 * @depends testAssign
 */
 function testHasRole()
 {
 $ID1 = jf::$RBAC->Roles->Add ( "role1", "" );
 $ID11 = jf::$RBAC->Roles->Add ( "role1-1", "", $ID1 );
 $ID111 = jf::$RBAC->Roles->Add ( "role1-1-1", "", $ID11 );
 
 $ID2 = jf::$RBAC->Roles->Add ( "role2", "" );
 $ID21 = jf::$RBAC->Roles->Add ( "role2-1", "", $ID2 );
 $ID211 = jf::$RBAC->Roles->Add ( "role2-1-1", "", $ID21 );
 
 
 $UID = 2;
 jf::$RBAC->Users->Assign ( $ID21, $UID );
 
 $this->assertTrue ( jf::$RBAC->Users->HasRole ( $ID21, $UID ) );
 $this->assertTrue ( jf::$RBAC->Users->HasRole ( $ID211, $UID ) );
 
 $this->assertFalse ( jf::$RBAC->Users->HasRole ( $ID2, $UID ) );
 $this->assertFalse ( jf::$RBAC->Users->HasRole ( $ID111, $UID ) );
 
 jf::$RBAC->Users->Unassign ( $ID21, $UID );
 $this->assertFalse ( jf::$RBAC->Users->HasRole ( $ID21, $UID ) );
 }
 
 
 function testResetAssignments()
 {
 $ID1 = jf::$RBAC->Roles->Add ( "role1", "" );
 $ID11 = jf::$RBAC->Roles->Add ( "role1-1", "", $ID1 );
 $ID111 = jf::$RBAC->Roles->Add ( "role1-1-1", "", $ID11 );
 
 $ID2 = jf::$RBAC->Roles->Add ( "role2", "" );
 $ID21 = jf::$RBAC->Roles->Add ( "role2-1", "", $ID2 );
 $ID211 = jf::$RBAC->Roles->Add ( "role2-1-1", "", $ID21 );
 
 
 $UID = 2;
 jf::$RBAC->Users->Assign ( $ID21, $UID );
 
 jf::$RBAC->Users->ResetAssignments(true);
 $this->assertEquals(1,count(jf::$RBAC->Users->AllRoles(1)));
 $this->assertEquals(0,count(jf::$RBAC->Users->AllRoles($UID)));
 }
 }
 |