← Code-Übersicht

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);
    }
}