Optimized tests for fixture sources

This commit is contained in:
Kevin Frantz
2019-03-31 16:59:46 +02:00
parent 0115751e98
commit 108debf6bf
9 changed files with 89 additions and 16 deletions

View File

@@ -6,6 +6,8 @@ use Infinito\Entity\Meta\Right;
use Infinito\DBAL\Types\Meta\Right\LayerType;
use Infinito\DBAL\Types\ActionType;
use Infinito\Entity\Source\SourceInterface;
use Infinito\Entity\Meta\RightInterface;
use Infinito\Entity\Meta\LawInterface;
/**
* @author kevinfrantz
@@ -13,18 +15,30 @@ use Infinito\Entity\Source\SourceInterface;
final class EntityTemplateFactory extends Right
{
/**
* @param SourceInterface $source
* @param LawInterface $law
* @param RightInterface $right
*/
public static function createStandartPublicRight(SourceInterface $source): Right
private static function addRightToLaw(LawInterface $law, RightInterface $right)
{
$right = new Right();
$law = $source->getLaw();
$right->setLaw($law);
$law->getRights()->add($right);
$right->setSource($source);
$right->setLayer(LayerType::SOURCE);
$right->setActionType(ActionType::READ);
}
return $right;
/**
* @param SourceInterface $source
*/
public static function createStandartPublicRights(SourceInterface $source): void
{
$law = $source->getLaw();
$readRight = new Right();
self::addRightToLaw($law, $readRight);
$readRight->setSource($source);
$readRight->setLayer(LayerType::SOURCE);
$readRight->setActionType(ActionType::READ);
$executeRight = new Right();
self::addRightToLaw($law, $executeRight);
$executeRight->setSource($source);
$executeRight->setLayer(LayerType::SOURCE);
$executeRight->setActionType(ActionType::EXECUTE);
}
}

View File

@@ -22,7 +22,7 @@ final class GuestUserFixtureSource extends AbstractFixtureSource
{
$userSource = new UserSource();
$userSource->setSlug(self::getSlug());
EntityTemplateFactory::createStandartPublicRight($userSource);
EntityTemplateFactory::createStandartPublicRights($userSource);
return $userSource;
}

View File

@@ -21,7 +21,7 @@ final class HelpFixtureSource extends AbstractFixtureSource
$helpSource = new TextSource();
$helpSource->setText('See https://github.com/KevinFrantz/infinito/issues.');
$helpSource->setSlug(self::getSlug());
EntityTemplateFactory::createStandartPublicRight($helpSource);
EntityTemplateFactory::createStandartPublicRights($helpSource);
return $helpSource;
}

View File

@@ -21,7 +21,7 @@ final class HomepageFixtureSource extends AbstractFixtureSource
$homepage = new TextSource();
$homepage->setText('Welcome to infinito!');
$homepage->setSlug(self::getSlug());
EntityTemplateFactory::createStandartPublicRight($homepage);
EntityTemplateFactory::createStandartPublicRights($homepage);
return $homepage;
}

View File

@@ -21,7 +21,7 @@ final class ImpressumFixtureSource extends AbstractFixtureSource
$impressumSource = new TextSource();
$impressumSource->setText('Example Impressum');
$impressumSource->setSlug(self::getSlug());
EntityTemplateFactory::createStandartPublicRight($impressumSource);
EntityTemplateFactory::createStandartPublicRights($impressumSource);
return $impressumSource;
}

View File

@@ -21,7 +21,7 @@ final class InformationFixtureSource extends AbstractFixtureSource
$informationSource = new TextSource();
$informationSource->setText('See https://github.com/KevinFrantz/infinito/issues.');
$informationSource->setSlug(self::getSlug());
EntityTemplateFactory::createStandartPublicRight($informationSource);
EntityTemplateFactory::createStandartPublicRights($informationSource);
return $informationSource;
}