layer = LayerType::MEMBER; $this->type = CRUDType::READ; $this->source = new PureSource(); $this->right = new Right(); $this->right->setReciever($this->source); $this->right->setCrud($this->type); $this->right->setLayer($this->layer); $this->rightManager = new RightChecker($this->right); } public function testFirstDimension(): void { $granted = $this->rightManager->isGranted($this->layer, $this->type, $this->source); $this->assertTrue($granted); $notGranted = $this->rightManager->isGranted(LayerType::SOURCE, $this->type, $this->source); $this->assertFalse($notGranted); $notGranted2 = $this->rightManager->isGranted($this->layer, CRUDType::UPDATE, $this->source); $this->assertFalse($notGranted2); $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, new PureSource()); $this->assertFalse($notGranted4); } public function testSecondDimension(): void { $secondSource = new PureSource(); $this->source->getMemberRelation()->getMembers()->add($secondSource->getMemberRelation()); $granted = $this->rightManager->isGranted($this->layer, $this->type, $secondSource); $this->assertTrue($granted); $notGranted = $this->rightManager->isGranted(LayerType::SOURCE, $this->type, $secondSource); $this->assertFalse($notGranted); $notGranted2 = $this->rightManager->isGranted($this->layer, CRUDType::UPDATE, $secondSource); $this->assertFalse($notGranted2); $this->right->setGrant(false); $notGranted3 = $this->rightManager->isGranted($this->layer, $this->type, $secondSource); $this->assertFalse($notGranted3); } public function testThirdDimension(): void { $thirdSource = new PureSource(); $secondSource = new PureSource(); $secondSource->getMemberRelation()->getMembers()->add($thirdSource->getMemberRelation()); $this->source->getMemberRelation()->getMembers()->add($secondSource->getMemberRelation()); $granted = $this->rightManager->isGranted($this->layer, $this->type, $thirdSource); $this->assertTrue($granted); $notGranted = $this->rightManager->isGranted(LayerType::SOURCE, $this->type, $thirdSource); $this->assertFalse($notGranted); $notGranted2 = $this->rightManager->isGranted($this->layer, CRUDType::UPDATE, $thirdSource); $this->assertFalse($notGranted2); $this->right->setGrant(false); $notGranted3 = $this->rightManager->isGranted($this->layer, $this->type, $thirdSource); $this->assertFalse($notGranted3); } }