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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy