Skip to content
This repository was archived by the owner on Oct 11, 2022. It is now read-only.

Commit a68cd77

Browse files
Merge pull request #21 from workivate/parent-disabled-exception
Add create method in ParentDisabledException
2 parents 8566623 + 4dafd4e commit a68cd77

5 files changed

Lines changed: 10 additions & 9 deletions

File tree

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "workivate/feature-keys",
33
"license": "MIT",
44
"description": "Feature Keys Domain Framework",
5-
"version": "1.0.20",
5+
"version": "1.0.21",
66
"require": {
77
"php": "^7.1"
88
},

src/FeatureAccess/FeatureAccessContainer.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public function validate(): void
2020
foreach ($this->accesses as $access) {
2121
$parent = $access->getParent();
2222
if ($parent !== null && $access->isEnabled() && $parent->isDisabled()) {
23-
throw ParentDisabledException::parentDisabled($access::getName(), $parent::getName());
23+
throw ParentDisabledException::create($access::getName(), $parent::getName());
2424
}
2525
}
2626
}

src/FeatureAccess/FeatureAccessContainerException.php

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,6 @@
55

66
class FeatureAccessContainerException extends \RuntimeException
77
{
8-
public static function parentDisabled(string $accessName, string $parentAccessName): self
9-
{
10-
return new self("Access $accessName cannot be enabled if $parentAccessName is disabled.", 1);
11-
}
12-
138
public static function accessAlreadySet(string $accessName): self
149
{
1510
return new self("Access $accessName is already set. Resetting is forbidden.", 2);

src/FeatureAccess/ParentDisabledException.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,16 @@ class ParentDisabledException extends FeatureAccessContainerException
1111

1212
public function __construct(string $accessName, string $parentAccessName)
1313
{
14-
parent::__construct();
14+
parent::__construct("Access $accessName cannot be enabled if $parentAccessName is disabled.");
1515
$this->accessName = $accessName;
1616
$this->parentAccessName = $parentAccessName;
1717
}
1818

19+
public static function create(string $accessName, string $parentAccessName): self
20+
{
21+
return new self($accessName, $parentAccessName);
22+
}
23+
1924
public function getAccessName(): string
2025
{
2126
return $this->accessName;

tests/FeatureAccess/FeatureAccessContainerTest.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
use FeatureKeys\FeatureAccess\FeatureAccessContainer;
77
use FeatureKeys\FeatureAccess\FeatureAccessContainerException;
8+
use FeatureKeys\FeatureAccess\ParentDisabledException;
89
use FeatureKeys\Tests\StarWars\FeatureAccess\Accesses\Jedi\JediAccess;
910
use FeatureKeys\Tests\StarWars\FeatureAccess\Accesses\Jedi\ObiWanAccess;
1011
use FeatureKeys\Tests\StarWars\FeatureAccess\Accesses\Jedi\QuiGonAccess;
@@ -70,7 +71,7 @@ public function testCanValidateItself(): void
7071
$plagueisAccess,
7172
];
7273

73-
$expectedException = FeatureAccessContainerException::parentDisabled(
74+
$expectedException = ParentDisabledException::create(
7475
$plagueisAccess::getName(),
7576
$sithAccess::getName()
7677
);

0 commit comments

Comments
 (0)