Skip to content

Commit a810c15

Browse files
committed
dependencies cleared
1 parent c74599b commit a810c15

File tree

4 files changed

+57
-42
lines changed

4 files changed

+57
-42
lines changed

composer.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@
1111
],
1212
"require": {
1313
"php": ">=7.4.0",
14-
"php-ds/php-ds": "^1.4",
15-
"smoren/nested-accessor": "^0.1.2"
14+
"php-ds/php-ds": ">=1.4"
1615
},
1716
"require-dev": {
1817
"codeception/codeception": "^4.2.1",

src/Exceptions/BaseGraphException.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@
22

33
namespace Smoren\GraphTools\Exceptions;
44

5-
use Smoren\ExtendedExceptions\BaseException;
6-
75
/**
86
* Base package exception class
97
* @author Smoren <[email protected]>
108
*/
11-
abstract class BaseGraphException extends BaseException
9+
abstract class BaseGraphException extends \Exception
1210
{
1311
}

src/Store/PreloadedGraphRepository.php

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
use Smoren\GraphTools\Structs\Interfaces\TraverseStepIteratorInterface;
1111
use Smoren\GraphTools\Structs\TraverseStepItem;
1212
use Smoren\GraphTools\Structs\TraverseStepIterator;
13-
use Smoren\NestedAccessor\Helpers\NestedAccess;
1413

1514
/**
1615
* Graph repository implementation with data storage in RAM
@@ -51,13 +50,13 @@ public function __construct(
5150
foreach($edges as $edge) {
5251
$this->edgesMap[$edge->getId()] = $edge;
5352

54-
NestedAccess::set(
53+
$this->setToMap(
5554
$this->edgesDirectMap,
5655
[$edge->getFromId(), $edge->getId()],
5756
[$edge->getType(), $edge->getToId()]
5857
);
5958

60-
NestedAccess::set(
59+
$this->setToMap(
6160
$this->edgesReverseMap,
6261
[$edge->getToId(), $edge->getId()],
6362
[$edge->getType(), $edge->getFromId()]
@@ -172,4 +171,19 @@ protected function isSuitableEdge(EdgeInterface $edge, ?FilterConditionInterface
172171
{
173172
return ($condition === null) || $condition->isSuitableEdge($edge);
174173
}
174+
175+
/**
176+
* @param array<string, mixed> $map
177+
* @param array<string> $path
178+
* @param array<string> $value
179+
* @return void
180+
*/
181+
protected function setToMap(array &$map, array $path, array $value): void
182+
{
183+
foreach ($path as $key) {
184+
/** @var array<string, mixed> $map */
185+
$map = &$map[$key];
186+
}
187+
$map = $value;
188+
}
175189
}

tests/unit/PreloadedGraphTraverseTest.php

Lines changed: 38 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
use Smoren\GraphTools\Structs\FilterConfig;
1818
use Smoren\GraphTools\Structs\Interfaces\TraverseContextInterface;
1919
use Smoren\GraphTools\Structs\TraverseContext;
20-
use Smoren\NestedAccessor\Helpers\NestedHelper;
2120

2221
class PreloadedGraphTraverseTest extends Unit
2322
{
@@ -202,22 +201,22 @@ public function testWeb()
202201
);
203202
$branchMap = TraverseHelper::getBranches($contexts);
204203
$this->assertCount(7, $branchMap);
205-
$this->assertEquals([1, 2, 3, 4, 1], NestedHelper::get($branchMap[0], 'id'));
206-
$this->assertEquals([1, 5, 6, 2, 3, 4, 1], NestedHelper::get($branchMap[1], 'id'));
207-
$this->assertEquals([1, 5, 3, 4, 1], NestedHelper::get($branchMap[2], 'id'));
208-
$this->assertEquals([1, 2, 3, 4, 5, 6, 2], NestedHelper::get($branchMap[3], 'id'));
209-
$this->assertEquals([1, 5, 3, 4, 5], NestedHelper::get($branchMap[4], 'id'));
210-
$this->assertEquals([1, 2, 3, 4, 5, 3], NestedHelper::get($branchMap[5], 'id'));
211-
$this->assertEquals([1, 5, 6, 2, 3, 4, 5], NestedHelper::get($branchMap[6], 'id'));
204+
$this->assertEquals([1, 2, 3, 4, 1], $this->getFromArray($branchMap[0], 'id'));
205+
$this->assertEquals([1, 5, 6, 2, 3, 4, 1], $this->getFromArray($branchMap[1], 'id'));
206+
$this->assertEquals([1, 5, 3, 4, 1], $this->getFromArray($branchMap[2], 'id'));
207+
$this->assertEquals([1, 2, 3, 4, 5, 6, 2], $this->getFromArray($branchMap[3], 'id'));
208+
$this->assertEquals([1, 5, 3, 4, 5], $this->getFromArray($branchMap[4], 'id'));
209+
$this->assertEquals([1, 2, 3, 4, 5, 3], $this->getFromArray($branchMap[5], 'id'));
210+
$this->assertEquals([1, 5, 6, 2, 3, 4, 5], $this->getFromArray($branchMap[6], 'id'));
212211

213212
$contexts = $traverse->generate(
214213
$repo->getVertexById(1),
215214
new TransparentTraverseFilter([FilterConfig::PREVENT_LOOP_PASS, FilterConfig::PREVENT_REPEAT_HANDLE])
216215
);
217216
$branchMap = TraverseHelper::getBranches($contexts);
218217
$this->assertCount(2, $branchMap);
219-
$this->assertEquals([1, 2, 3, 4], NestedHelper::get($branchMap[0], 'id'));
220-
$this->assertEquals([1, 5, 6], NestedHelper::get($branchMap[1], 'id'));
218+
$this->assertEquals([1, 2, 3, 4], $this->getFromArray($branchMap[0], 'id'));
219+
$this->assertEquals([1, 5, 6], $this->getFromArray($branchMap[1], 'id'));
221220

222221
// TODO test for only vertex or connections types
223222
}
@@ -300,9 +299,9 @@ public function testStopBranch()
300299
);
301300
$branchMap = TraverseHelper::getBranches($contexts);
302301
$this->assertCount(3, $branchMap);
303-
$this->assertEquals([1, 2, 3, 4], NestedHelper::get($branchMap[0], 'id'));
304-
$this->assertEquals([1, 2, 5, 6], NestedHelper::get($branchMap[1], 'id'));
305-
$this->assertEquals([1, 2, 7, 8], NestedHelper::get($branchMap[2], 'id'));
302+
$this->assertEquals([1, 2, 3, 4], $this->getFromArray($branchMap[0], 'id'));
303+
$this->assertEquals([1, 2, 5, 6], $this->getFromArray($branchMap[1], 'id'));
304+
$this->assertEquals([1, 2, 7, 8], $this->getFromArray($branchMap[2], 'id'));
306305

307306
$contexts = $traverse->generate(
308307
$repo->getVertexById(1),
@@ -317,9 +316,9 @@ function(TraverseContext $context, Generator $contexts) {
317316
}
318317
);
319318
$this->assertCount(3, $branchMap);
320-
$this->assertEquals([1, 2, 3], NestedHelper::get($branchMap[0], 'id'));
321-
$this->assertEquals([1, 2, 5, 6], NestedHelper::get($branchMap[1], 'id'));
322-
$this->assertEquals([1, 2, 7, 8], NestedHelper::get($branchMap[2], 'id'));
319+
$this->assertEquals([1, 2, 3], $this->getFromArray($branchMap[0], 'id'));
320+
$this->assertEquals([1, 2, 5, 6], $this->getFromArray($branchMap[1], 'id'));
321+
$this->assertEquals([1, 2, 7, 8], $this->getFromArray($branchMap[2], 'id'));
323322

324323
$filter = new ConstTraverseFilter(
325324
(new FilterCondition())->excludeVertexTypes([2]),
@@ -329,8 +328,8 @@ function(TraverseContext $context, Generator $contexts) {
329328
$contexts = $traverse->generate($repo->getVertexById(1), $filter);
330329
$branchMap = TraverseHelper::getBranches($contexts);
331330
$this->assertCount(2, $branchMap);
332-
$this->assertEquals([1, 2, 5, 6], NestedHelper::get($branchMap[0], 'id'));
333-
$this->assertEquals([1, 2, 7, 8], NestedHelper::get($branchMap[1], 'id'));
331+
$this->assertEquals([1, 2, 5, 6], $this->getFromArray($branchMap[0], 'id'));
332+
$this->assertEquals([1, 2, 7, 8], $this->getFromArray($branchMap[1], 'id'));
334333

335334
$contexts = $traverse->generate(
336335
$repo->getVertexById(1),
@@ -345,9 +344,9 @@ function(TraverseContext $context, Generator $contexts) {
345344
}
346345
);
347346
$this->assertCount(3, $branchMap);
348-
$this->assertEquals([1, 2, 3, 4], NestedHelper::get($branchMap[0], 'id'));
349-
$this->assertEquals([1, 2, 5], NestedHelper::get($branchMap[1], 'id'));
350-
$this->assertEquals([1, 2, 7, 8], NestedHelper::get($branchMap[2], 'id'));
347+
$this->assertEquals([1, 2, 3, 4], $this->getFromArray($branchMap[0], 'id'));
348+
$this->assertEquals([1, 2, 5], $this->getFromArray($branchMap[1], 'id'));
349+
$this->assertEquals([1, 2, 7, 8], $this->getFromArray($branchMap[2], 'id'));
351350

352351
$filter = new ConstTraverseFilter(
353352
(new FilterCondition())->excludeVertexTypes([3]),
@@ -357,8 +356,8 @@ function(TraverseContext $context, Generator $contexts) {
357356
$contexts = $traverse->generate($repo->getVertexById(1), $filter);
358357
$branchMap = TraverseHelper::getBranches($contexts);
359358
$this->assertCount(2, $branchMap);
360-
$this->assertEquals([1, 2, 3, 4], NestedHelper::get($branchMap[0], 'id'));
361-
$this->assertEquals([1, 2, 7, 8], NestedHelper::get($branchMap[1], 'id'));
359+
$this->assertEquals([1, 2, 3, 4], $this->getFromArray($branchMap[0], 'id'));
360+
$this->assertEquals([1, 2, 7, 8], $this->getFromArray($branchMap[1], 'id'));
362361

363362
$contexts = $traverse->generate(
364363
$repo->getVertexById(1),
@@ -373,9 +372,9 @@ function(TraverseContext $context, Generator $contexts) {
373372
}
374373
);
375374
$this->assertCount(3, $branchMap);
376-
$this->assertEquals([1, 2, 3], NestedHelper::get($branchMap[0], 'id'));
377-
$this->assertEquals([1, 2, 5], NestedHelper::get($branchMap[1], 'id'));
378-
$this->assertEquals([1, 2, 7, 8], NestedHelper::get($branchMap[2], 'id'));
375+
$this->assertEquals([1, 2, 3], $this->getFromArray($branchMap[0], 'id'));
376+
$this->assertEquals([1, 2, 5], $this->getFromArray($branchMap[1], 'id'));
377+
$this->assertEquals([1, 2, 7, 8], $this->getFromArray($branchMap[2], 'id'));
379378

380379
$filter = new ConstTraverseFilter(
381380
(new FilterCondition())->excludeVertexTypes([2, 3]),
@@ -385,7 +384,7 @@ function(TraverseContext $context, Generator $contexts) {
385384
$contexts = $traverse->generate($repo->getVertexById(1), $filter);
386385
$branchMap = TraverseHelper::getBranches($contexts);
387386
$this->assertCount(1, $branchMap);
388-
$this->assertEquals([1, 2, 7, 8], NestedHelper::get($branchMap[0], 'id'));
387+
$this->assertEquals([1, 2, 7, 8], $this->getFromArray($branchMap[0], 'id'));
389388
}
390389

391390
public function testWorkflowWithReverseLink()
@@ -419,17 +418,22 @@ public function testWorkflowWithReverseLink()
419418
);
420419
$branches = TraverseHelper::getBranches($contexts);
421420
$this->assertCount(4, $branches);
422-
$this->assertEquals([1, 2, 3, 5], NestedHelper::get($branches[0], 'id'));
423-
$this->assertEquals([1, 2, 4, 5], NestedHelper::get($branches[1], 'id'));
424-
$this->assertEquals([1, 2, 4, 6, 7], NestedHelper::get($branches[2], 'id'));
425-
$this->assertEquals([1, 2, 4, 6, 2], NestedHelper::get($branches[3], 'id'));
421+
$this->assertEquals([1, 2, 3, 5], $this->getFromArray($branches[0], 'id'));
422+
$this->assertEquals([1, 2, 4, 5], $this->getFromArray($branches[1], 'id'));
423+
$this->assertEquals([1, 2, 4, 6, 7], $this->getFromArray($branches[2], 'id'));
424+
$this->assertEquals([1, 2, 4, 6, 2], $this->getFromArray($branches[3], 'id'));
426425

427426
$filter = new ConstTraverseFilter((new FilterCondition())->onlyEdgeTypes([1]));
428427
$contexts = $traverse->generate($repo->getVertexById(1), $filter);
429428
$branches = TraverseHelper::getBranches($contexts);
430429
$this->assertCount(3, $branches);
431-
$this->assertEquals([1, 2, 3, 5], NestedHelper::get($branches[0], 'id'));
432-
$this->assertEquals([1, 2, 4, 5], NestedHelper::get($branches[1], 'id'));
433-
$this->assertEquals([1, 2, 4, 6, 7], NestedHelper::get($branches[2], 'id'));
430+
$this->assertEquals([1, 2, 3, 5], $this->getFromArray($branches[0], 'id'));
431+
$this->assertEquals([1, 2, 4, 5], $this->getFromArray($branches[1], 'id'));
432+
$this->assertEquals([1, 2, 4, 6, 7], $this->getFromArray($branches[2], 'id'));
433+
}
434+
435+
protected function getFromArray(array $source, string $key)
436+
{
437+
return array_map(fn ($item) => is_array($item) ? $item[$key] : $item->{'get'.ucfirst($key)}(), $source);
434438
}
435439
}

0 commit comments

Comments
 (0)