mirror of
				https://github.com/kevinveenbirkenbach/infinito.git
				synced 2025-10-31 09:19:08 +00:00 
			
		
		
		
	Refactored reciever
This commit is contained in:
		| @@ -15,6 +15,9 @@ use App\Entity\Meta\LawInterface; | ||||
| use App\Entity\Meta\RightInterface; | ||||
| use Doctrine\Common\Collections\ArrayCollection; | ||||
|  | ||||
| /** | ||||
|  * @author kevinfrantz | ||||
|  */ | ||||
| class LawPermissionCheckerTest extends TestCase | ||||
| { | ||||
|     /** | ||||
| @@ -30,7 +33,12 @@ class LawPermissionCheckerTest extends TestCase | ||||
|     /** | ||||
|      * @var RightInterface | ||||
|      */ | ||||
|     protected $client; | ||||
|     protected $clientRight; | ||||
|  | ||||
|     /** | ||||
|      * @var SourceInterface | ||||
|      */ | ||||
|     private $clientSource; | ||||
|  | ||||
|     private function getSourceMock(): SourceInterface | ||||
|     { | ||||
| @@ -40,61 +48,60 @@ class LawPermissionCheckerTest extends TestCase | ||||
|  | ||||
|     private function checkClientPermission(): bool | ||||
|     { | ||||
|         return $this->lawPermissionChecker->hasPermission($this->client); | ||||
|         return $this->lawPermissionChecker->hasPermission($this->clientRight); | ||||
|     } | ||||
|  | ||||
|     public function setUp(): void | ||||
|     { | ||||
|         $this->client = new Right(); | ||||
|         $this->clientRight = new Right(); | ||||
|         $this->law = new Law(); | ||||
|         $this->lawPermissionChecker = new LawPermissionCheckerService($this->law); | ||||
|         $source = $this->getSourceMock(); | ||||
|         $this->client->setSource($source); | ||||
|         $this->client->setLayer(LayerType::SOURCE); | ||||
|         $this->client->setType(RightType::READ); | ||||
|         $this->clientSource = $this->getSourceMock(); | ||||
|         $this->clientRight->setSource($this->clientSource); | ||||
|         $this->clientRight->setLayer(LayerType::SOURCE); | ||||
|         $this->clientRight->setType(RightType::READ); | ||||
|     } | ||||
|  | ||||
|     public function testGeneralPermission(): void | ||||
|     { | ||||
|         $this->assertFalse($this->checkClientPermission()); | ||||
|         $lawRight = clone $this->client; | ||||
|         $lawRight = clone $this->clientRight; | ||||
|         $lawRight->setReciever($this->clientSource); | ||||
|         $this->law->getRights()->add($lawRight); | ||||
|         $this->assertTrue($this->checkClientPermission()); | ||||
|         $this->client->setType(RightType::WRITE); | ||||
|         $this->clientRight->setType(RightType::WRITE); | ||||
|         $this->assertFalse($this->checkClientPermission()); | ||||
|     } | ||||
|  | ||||
|     public function testMemberPermission(): void | ||||
|     { | ||||
|         $parentSource = $this->getSourceMock(); | ||||
|         $this->client->getSource()->getMemberRelation()->getMemberships()->add($parentSource); | ||||
|         $parentSource->getMemberRelation()->getMembers()->add($this->client->getSource()); | ||||
|         $lawRight = clone $this->client; | ||||
|         $lawRight->setSource($parentSource); | ||||
|         $this->clientRight->getSource()->getMemberRelation()->getMemberships()->add($parentSource); | ||||
|         $parentSource->getMemberRelation()->getMembers()->add($this->clientRight->getSource()); | ||||
|         $lawRight = clone $this->clientRight; | ||||
|         $lawRight->setReciever($parentSource); | ||||
|         $this->law->getRights()->add($lawRight); | ||||
|         $permission = $this->lawPermissionChecker->hasPermission($this->client); | ||||
|         $permission = $this->lawPermissionChecker->hasPermission($this->clientRight); | ||||
|         $this->assertTrue($permission); | ||||
|         $this->law->setRights(new ArrayCollection()); | ||||
|         $permission = $this->lawPermissionChecker->hasPermission($this->client); | ||||
|         $permission = $this->lawPermissionChecker->hasPermission($this->clientRight); | ||||
|         $this->assertFalse($permission); | ||||
|     } | ||||
|  | ||||
|     public function testSort(): void | ||||
|     { | ||||
|         $right1 = clone $this->client; | ||||
|         $right1 = clone $this->clientRight; | ||||
|         $right1->setPriority(123); | ||||
|         $right1->setGrant(false); | ||||
|         $right2 = clone $this->client; | ||||
|         $right1->setReciever($this->clientSource); | ||||
|         $right2 = clone $this->clientRight; | ||||
|         $right2->setPriority(456); | ||||
|         $right2->setGrant(true); | ||||
|         $right2->setReciever($this->clientSource); | ||||
|         $this->law->setRights(new ArrayCollection([$right1, $right2])); | ||||
|         $this->assertFalse($this->checkClientPermission()); | ||||
|         $right2->setPriority(789); | ||||
|         $right1->setPriority(101112); | ||||
|         $this->assertTrue($this->checkClientPermission()); | ||||
|     } | ||||
|  | ||||
| //     public function test2Rights():void{ | ||||
|  | ||||
| //     } | ||||
| } | ||||
|   | ||||
| @@ -51,7 +51,7 @@ class RightCheckerTest extends TestCase | ||||
|         $this->type = RightType::READ; | ||||
|         $this->source = $this->getSourceMock(); | ||||
|         $this->right = new Right(); | ||||
|         $this->right->setSource($this->source); | ||||
|         $this->right->setReciever($this->source); | ||||
|         $this->right->setType($this->type); | ||||
|         $this->right->setLayer($this->layer); | ||||
|         $this->rightManager = new RightChecker($this->right); | ||||
| @@ -68,6 +68,8 @@ class RightCheckerTest extends TestCase | ||||
|         $this->right->setGrant(false); | ||||
|         $notGranted3 = $this->rightManager->isGranted($this->layer, $this->type, $this->source); | ||||
|         $this->assertFalse($notGranted3); | ||||
|         $notGranted4 = $this->rightManager->isGranted($this->layer, $this->type, $this->getSourceMock()); | ||||
|         $this->assertFalse($notGranted4); | ||||
|     } | ||||
|  | ||||
|     public function testSecondDimension(): void | ||||
|   | ||||
		Reference in New Issue
	
	Block a user