<?php
require_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)));
}
}
|