layer = LayerType::RELATION; $this->type = RightType::READ; $this->source = $this->getSourceMock(); $this->right = new Right(); $this->right->setSource($this->source); $this->right->setType($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, RightType::WRITE, $this->source); $this->assertFalse($notGranted2); $this->right->setGrant(false); $notGranted3 = $this->rightManager->isGranted($this->layer, $this->type, $this->source); $this->assertFalse($notGranted3); } public function testSecondDimension(): void { $secondSource = $this->getSourceMock(); $this->source->getMemberRelation()->getMembers()->add($secondSource); $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, RightType::WRITE, $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 = $this->getSourceMock(); $secondSource = $this->getSourceMock(); $secondSource->getMemberRelation()->getMembers()->add($thirdSource); $this->source->getMemberRelation()->getMembers()->add($secondSource); $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, RightType::WRITE, $thirdSource); $this->assertFalse($notGranted2); $this->right->setGrant(false); $notGranted3 = $this->rightManager->isGranted($this->layer, $this->type, $thirdSource); $this->assertFalse($notGranted3); } }