Skip to content

Commit 96d1fda

Browse files
committed
refactor: update MermaidDumper to accept direction as a parameter in dump method
1 parent 4ff1b49 commit 96d1fda

File tree

3 files changed

+12
-14
lines changed

3 files changed

+12
-14
lines changed

src/Symfony/Bundle/SecurityBundle/Command/SecurityRoleHierarchyDumpCommand.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ protected function execute(InputInterface $input, OutputInterface $output): int
7676
return Command::FAILURE;
7777
}
7878

79-
$dumper = new MermaidDumper(MermaidDirectionEnum::from($direction));
80-
$mermaidOutput = $dumper->dump($this->roleHierarchy);
79+
$dumper = new MermaidDumper();
80+
$mermaidOutput = $dumper->dump($this->roleHierarchy, MermaidDirectionEnum::from($direction));
8181

8282
$output->writeln($mermaidOutput);
8383

src/Symfony/Component/Security/Core/Dumper/MermaidDumper.php

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,25 +21,21 @@
2121
*/
2222
class MermaidDumper
2323
{
24-
public function __construct(
25-
private readonly MermaidDirectionEnum $direction = MermaidDirectionEnum::TOP_TO_BOTTOM,
26-
) {
27-
}
28-
2924
/**
3025
* Dumps the role hierarchy as a Mermaid flowchart.
3126
*
3227
* @param RoleHierarchyInterface $roleHierarchy The role hierarchy to dump
28+
* @param MermaidDirectionEnum $direction The direction of the flowchart
3329
*/
34-
public function dump(RoleHierarchyInterface $roleHierarchy): string
30+
public function dump(RoleHierarchyInterface $roleHierarchy, MermaidDirectionEnum $direction = MermaidDirectionEnum::TOP_TO_BOTTOM): string
3531
{
3632
$hierarchy = $this->extractHierarchy($roleHierarchy);
3733

3834
if (!$hierarchy) {
39-
return "graph {$this->direction->value}\n classDef default fill:#e1f5fe;";
35+
return "graph {$direction->value}\n classDef default fill:#e1f5fe;";
4036
}
4137

42-
$output = ["graph {$this->direction->value}"];
38+
$output = ["graph {$direction->value}"];
4339
$allRoles = $this->getAllRoles($hierarchy);
4440

4541
foreach ($allRoles as $role) {

src/Symfony/Component/Security/Core/Tests/Dumper/MermaidDumperTest.php

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ public function testDumpWithDirection()
4545
];
4646

4747
$roleHierarchy = new RoleHierarchy($hierarchy);
48-
$dumper = new MermaidDumper(MermaidDirectionEnum::LEFT_TO_RIGHT);
49-
$output = $dumper->dump($roleHierarchy);
48+
$dumper = new MermaidDumper();
49+
$output = $dumper->dump($roleHierarchy, MermaidDirectionEnum::LEFT_TO_RIGHT);
5050

5151
$this->assertStringContainsString('graph LR', $output);
5252
}
@@ -92,7 +92,8 @@ public function testInvalidDirection()
9292
{
9393
$this->expectException(\TypeError::class);
9494

95-
new MermaidDumper('INVALID');
95+
$dumper = new MermaidDumper();
96+
$dumper->dump(new RoleHierarchy([]), 'INVALID');
9697
}
9798

9899
/**
@@ -101,7 +102,8 @@ public function testInvalidDirection()
101102
public function testValidDirections(MermaidDirectionEnum $direction)
102103
{
103104
$this->expectNotToPerformAssertions();
104-
new MermaidDumper($direction);
105+
$dumper = new MermaidDumper();
106+
$dumper->dump(new RoleHierarchy([]), $direction);
105107
}
106108

107109
public static function dataProviderValidDirection()

0 commit comments

Comments
 (0)