<?php 
require_once __DIR__."/base.php"; 
class PHPRBACPermissionsTest extends PHPRBACBaseTest 
{ 
    /** 
     *  
     * @return \jf\PermissionManager 
     */ 
    protected function Instance() 
    { 
        return jf::$RBAC->Permissions; 
    } 
     
    protected function Type() 
    { 
        return "permissions"; 
    } 
     
    function testUnassignRoles() 
    { 
        $ID1 = jf::$RBAC->Roles->Add ( "role1", "description of role1" ); 
        $ID2 = jf::$RBAC->Roles->Add ( "role2", "description of role2" ); 
        $ID11 = jf::$RBAC->Roles->Add ( "role1-1", "description of role", $ID1 ); 
        $ID12 = jf::$RBAC->Roles->Add ( "role1-2", "description of role", $ID1 ); 
        $ID121 = jf::$RBAC->Roles->Add ( "role1-2-1", "description of role", $ID12 ); 
         
        $PID1 = jf::$RBAC->Permissions->Add ( "permission1", "description" ); 
        $PID2 = jf::$RBAC->Permissions->Add ( "permission2", "description" ); 
        $PID21 = jf::$RBAC->Permissions->Add ( "permission2-1", "description", $PID2 ); 
 
        $this->Instance()->Assign($ID121,$PID2); 
        $this->assertTrue(jf::$RBAC->Roles->HasPermission($ID121, $PID2)); 
        $this->Instance()->UnassignRoles($PID2); 
        $this->assertFalse(jf::$RBAC->Roles->HasPermission($ID121, $PID2)); 
    } 
     
    function testRoles() 
    { 
        $ID1 = jf::$RBAC->Roles->Add ( "role1", "description of role1" ); 
        $ID2 = jf::$RBAC->Roles->Add ( "role2", "description of role2" ); 
        $ID11 = jf::$RBAC->Roles->Add ( "role1-1", "description of role", $ID1 ); 
        $ID12 = jf::$RBAC->Roles->Add ( "role1-2", "description of role", $ID1 ); 
        $ID121 = jf::$RBAC->Roles->Add ( "role1-2-1", "description of role", $ID12 ); 
         
        $PID1 = jf::$RBAC->Permissions->Add ( "permission1", "description" ); 
        $PID2 = jf::$RBAC->Permissions->Add ( "permission2", "description" ); 
        $PID21 = jf::$RBAC->Permissions->Add ( "permission2-1", "description", $PID2 ); 
 
        jf::$RBAC->Permissions->Assign ( $ID121, $PID2 ); 
        $this->assertEquals(jf::$RBAC->Permissions->Roles($PID2,true),array($ID121)); 
        jf::$RBAC->Permissions->Assign ( $ID2, $PID2 ); 
        $this->assertEquals(jf::$RBAC->Permissions->Roles($PID2,true),array($ID2,$ID121)); 
        $this->assertEquals(2,count(jf::$RBAC->Permissions->Roles($PID2))); 
         
    } 
}
 
 |