mirror of
				https://github.com/kevinveenbirkenbach/infinito.git
				synced 2025-11-04 03:07:58 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace tests\Integration\Domain\FixtureManagement;
 | 
						|
 | 
						|
use PHPUnit\Framework\TestCase;
 | 
						|
use Infinito\Entity\Source\AbstractSource;
 | 
						|
use Infinito\Domain\FixtureManagement\EntityTemplateFactory;
 | 
						|
use Infinito\Entity\Source\Complex\UserSource;
 | 
						|
use Infinito\Entity\Meta\Right;
 | 
						|
use Infinito\DBAL\Types\Meta\Right\LayerType;
 | 
						|
use Infinito\DBAL\Types\ActionType;
 | 
						|
use Infinito\Domain\LawManagement\LawPermissionChecker;
 | 
						|
 | 
						|
/**
 | 
						|
 * @author kevinfrantz
 | 
						|
 */
 | 
						|
class EntityTemplateFactoryIntegrationTest extends TestCase
 | 
						|
{
 | 
						|
    public function testStandartPublicRights(): void
 | 
						|
    {
 | 
						|
        $allowedActions = [ActionType::READ, ActionType::EXECUTE];
 | 
						|
        $allowedLayers = [LayerType::SOURCE];
 | 
						|
        $source = new class() extends AbstractSource {
 | 
						|
        };
 | 
						|
        $law = $source->getLaw();
 | 
						|
        $anonymUserSource = new UserSource();
 | 
						|
        EntityTemplateFactory::createStandartPublicRights($source);
 | 
						|
        $requestedRight = new Right();
 | 
						|
        $requestedRight->setReciever($anonymUserSource);
 | 
						|
        $lawPermissionChecker = new LawPermissionChecker($law);
 | 
						|
        foreach (LayerType::getValues() as $layerType) {
 | 
						|
            foreach (ActionType::getValues() as $actionType) {
 | 
						|
                $requestedRight->setActionType($actionType);
 | 
						|
                $requestedRight->setLayer($layerType);
 | 
						|
                $checkResult = $lawPermissionChecker->hasPermission($requestedRight);
 | 
						|
                if (in_array($actionType, $allowedActions) && in_array($layerType, $allowedLayers)) {
 | 
						|
                    $this->assertTrue($checkResult);
 | 
						|
                } else {
 | 
						|
                    $this->assertFalse($checkResult);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |