HealthTest.php
Pfad: tests/HealthTest.php
Ext: php
Größe: 1252 Bytes
Geändert: 2026-07-15 16:13:43+02
<?php
declare(strict_types=1);
namespace Tests;
use Demo\Application\Health\GetHealth;
use Demo\Domain\Health\HealthProbePort;
use Demo\Domain\Health\HealthReport;
use PHPUnit\Framework\TestCase;
/**
* Testet den Anwendungsfall GetHealth isoliert gegen einen Fake-Port.
*/
final class HealthTest 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();
}
/**
* Der Anwendungsfall reicht das Domaenen-Ergebnis unveraendert durch.
*/
public function testReturnsReportFromPort(): void
{
$probe = new class implements HealthProbePort {
/**
* Liefert ein festes, gesundes Ergebnis.
*
* @return HealthReport Fixiertes Pruefergebnis.
*/
public function probe(): HealthReport
{
return new HealthReport(true, 'ok');
}
};
$report = (new GetHealth($probe))->execute();
self::assertTrue($report->healthy);
self::assertSame('ok', $report->detail);
}
}