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

Commit 524040a

Browse files
Merge pull request #25 from workivate/get-children
Implements getChildren
2 parents fe79896 + 022ff50 commit 524040a

3 files changed

Lines changed: 33 additions & 1 deletion

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.29",
5+
"version": "1.0.30",
66
"require": {
77
"php": "^7.1"
88
},

src/FeatureAccess/FeatureAccessContainer.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,21 @@ public function getAll(): array
6262
{
6363
return $this->accesses;
6464
}
65+
66+
public function getChildren(string $parentAccessName): array
67+
{
68+
$children = [];
69+
70+
foreach ($this->accesses as $access) {
71+
if ($access->getParent() === null) {
72+
continue;
73+
}
74+
75+
if ($access->getParent()::getName() === $parentAccessName) {
76+
$children[] = $access;
77+
}
78+
}
79+
80+
return $children;
81+
}
6582
}

tests/FeatureAccess/FeatureAccessContainerTest.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,4 +103,19 @@ public function testCanBeOverridden(): void
103103
self::assertTrue($container->get(ObiWanAccess::getName())->isDisabled());
104104
self::assertCount(4, $container->getAll());
105105
}
106+
107+
public function testCanGetChildren(): void
108+
{
109+
$jediAccess = new JediAccess(true);
110+
$yodaAccess = new YodaAccess(true);
111+
$quiGonAccess = new QuiGonAccess(false);
112+
113+
$yodaAccess->setParent($jediAccess);
114+
$quiGonAccess->setParent($jediAccess);
115+
116+
$container = new FeatureAccessContainer(...[$jediAccess, $yodaAccess, $quiGonAccess]);
117+
118+
$jediChildren = $container->getChildren($jediAccess::getName());
119+
self::assertCount(2, $jediChildren);
120+
}
106121
}

0 commit comments

Comments
 (0)