From 1651ff95f7be2cf7e704fbed7ea7bc3be88ccb9c Mon Sep 17 00:00:00 2001 From: Kevin Frantz Date: Wed, 16 Jan 2019 21:47:41 +0100 Subject: [PATCH] Optimized layer attribut --- .../src/Entity/Attribut/LayerAttribut.php | 16 ++++++++++++++++ application/symfony/src/Entity/Meta/Right.php | 16 ---------------- .../Unit/Entity/Attribut/LayerAttributTest.php | 18 ++++++++++++------ .../tests/Unit/Entity/Meta/RightTest.php | 6 +++--- 4 files changed, 31 insertions(+), 25 deletions(-) diff --git a/application/symfony/src/Entity/Attribut/LayerAttribut.php b/application/symfony/src/Entity/Attribut/LayerAttribut.php index 839fa74..1bee5a1 100644 --- a/application/symfony/src/Entity/Attribut/LayerAttribut.php +++ b/application/symfony/src/Entity/Attribut/LayerAttribut.php @@ -2,21 +2,37 @@ namespace App\Entity\Attribut; +use App\DBAL\Types\Meta\Right\LayerType; +use App\Exception\NoValidChoiceException; + /** * @author kevinfrantz */ trait LayerAttribut { /** + * @see LayerType + * * @var string */ protected $layer; + /** + * @param string $layer + * + * @throws NoValidChoiceException + */ public function setLayer(string $layer): void { + if (!array_key_exists($layer, LayerType::getChoices())) { + throw new NoValidChoiceException(); + } $this->layer = $layer; } + /** + * @return string + */ public function getLayer(): string { return $this->layer; diff --git a/application/symfony/src/Entity/Meta/Right.php b/application/symfony/src/Entity/Meta/Right.php index 80b994e..1baec1d 100644 --- a/application/symfony/src/Entity/Meta/Right.php +++ b/application/symfony/src/Entity/Meta/Right.php @@ -6,7 +6,6 @@ use App\Entity\Attribut\CrudAttribut; use Doctrine\ORM\Mapping as ORM; use Fresh\DoctrineEnumBundle\Validator\Constraints as DoctrineAssert; use App\Entity\Attribut\LawAttribut; -use App\DBAL\Types\Meta\Right\LayerType; use App\Entity\Attribut\GrantAttribut; use App\Logic\Operation\OperationInterface; use App\Entity\Attribut\ConditionAttribut; @@ -15,8 +14,6 @@ use App\Entity\Attribut\LayerAttribut; use App\Entity\Attribut\RelationAttribut; use App\Entity\Attribut\PriorityAttribut; use App\Entity\Source\SourceInterface; -use App\Exception\NoValidChoiceException; -use App\DBAL\Types\Meta\Right\CRUDType; /** * @todo Remove relation attribut! @@ -98,17 +95,4 @@ class Right extends AbstractMeta implements RightInterface $this->grant = true; $this->priority = 0; } - - /** - * {@inheritdoc} - * - * @see \App\Entity\Attribut\LayerAttributInterface::setLayer() - */ - public function setLayer(string $layer): void - { - if (!array_key_exists($layer, LayerType::getChoices())) { - throw new NoValidChoiceException(); - } - $this->layer = $layer; - } } diff --git a/application/symfony/tests/Unit/Entity/Attribut/LayerAttributTest.php b/application/symfony/tests/Unit/Entity/Attribut/LayerAttributTest.php index 8c022b5..b18a010 100644 --- a/application/symfony/tests/Unit/Entity/Attribut/LayerAttributTest.php +++ b/application/symfony/tests/Unit/Entity/Attribut/LayerAttributTest.php @@ -6,17 +6,21 @@ use PHPUnit\Framework\TestCase; use App\Entity\Attribut\LayerAttributInterface; use App\Entity\Attribut\LayerAttribut; use App\DBAL\Types\Meta\Right\LayerType; +use App\Exception\NoValidChoiceException; +/** + * @author kevinfrantz + */ class LayerAttributTest extends TestCase { /** * @var LayerAttributInterface */ - protected $layer; + protected $layerAttribut; public function setUp(): void { - $this->layer = new class() implements LayerAttributInterface { + $this->layerAttribut = new class() implements LayerAttributInterface { use LayerAttribut; }; } @@ -24,14 +28,16 @@ class LayerAttributTest extends TestCase public function testConstruct(): void { $this->expectException(\TypeError::class); - $this->layer->getLayer(); + $this->layerAttribut->getLayer(); } public function testAccessors(): void { - foreach (LayerType::getChoices() as $value) { - $this->assertNull($this->layer->setLayer($value)); - $this->assertEquals($value, $this->layer->getLayer()); + foreach (LayerType::getChoices() as $enum) { + $this->assertNull($this->layerAttribut->setLayer($enum)); + $this->assertEquals($enum, $this->layerAttribut->getLayer()); } + $this->expectException(NoValidChoiceException::class); + $this->layerAttribut->setLayer('NoneValidLayer'); } } diff --git a/application/symfony/tests/Unit/Entity/Meta/RightTest.php b/application/symfony/tests/Unit/Entity/Meta/RightTest.php index b8a42ad..250dd3b 100644 --- a/application/symfony/tests/Unit/Entity/Meta/RightTest.php +++ b/application/symfony/tests/Unit/Entity/Meta/RightTest.php @@ -83,9 +83,9 @@ class RightTest extends TestCase public function testLayer(): void { - foreach (LayerType::getChoices() as $key => $value) { - $this->assertNull($this->right->setLayer($key)); - $this->assertEquals($key, $this->right->getLayer()); + foreach (LayerType::getChoices() as $choice) { + $this->assertNull($this->right->setLayer($choice)); + $this->assertEquals($choice, $this->right->getLayer()); } $this->expectException(NoValidChoiceException::class); $this->right->setLayer('NoneValidLayer');