FlussLayoutTest.php
Pfad: tests/FlussLayoutTest.php
Ext: php
Größe: 1549 Bytes
Geändert: 2026-07-16 00:00:43+02
<?php
declare(strict_types=1);
namespace Tests;
use Demo\Infrastructure\Flow\FlussLayout;
use PHPUnit\Framework\TestCase;
/**
* Prueft die Rang-/Spalten-Berechnung des Prozess-Fluss-Layouts.
*/
final class FlussLayoutTest extends TestCase
{
/**
* Registriert den Autoloader vor jedem Testfall.
*/
protected function setUp(): void
{
$root = dirname(__DIR__);
require_once $root . '/src/Autoloader.php';
(new \Demo\Autoloader($root . '/src'))->register();
}
/**
* Eine lineare Kette ergibt aufsteigende Raenge.
*/
public function testLineareKette(): void
{
$r = (new FlussLayout())->berechne([1, 2, 3], [[1, 2], [2, 3]]);
self::assertSame(0, $r['pos'][1]['rang']);
self::assertSame(1, $r['pos'][2]['rang']);
self::assertSame(2, $r['pos'][3]['rang']);
self::assertSame(2, $r['maxRang']);
self::assertSame(1, $r['maxSpalten']);
}
/**
* Verzweigung und Zusammenfuehrung ergeben korrekte Raenge und Spalten.
*/
public function testVerzweigungUndZusammenfuehrung(): void
{
$r = (new FlussLayout())->berechne([1, 2, 3, 4], [[1, 2], [1, 3], [2, 4], [3, 4]]);
self::assertSame(0, $r['pos'][1]['rang']);
self::assertSame(1, $r['pos'][2]['rang']);
self::assertSame(1, $r['pos'][3]['rang']);
self::assertSame(2, $r['pos'][4]['rang']);
self::assertSame(2, $r['maxSpalten']);
self::assertNotSame($r['pos'][2]['spalte'], $r['pos'][3]['spalte']);
}
}