packages/deriver/tests/Unit/Exception/EvaluationContractExceptionTest.php
1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Exception;
6
7use Deriver\Exception\EvaluationContractException;
8use PHPUnit\Framework\Attributes\CoversClass;
9use PHPUnit\Framework\Attributes\Small;
10use PHPUnit\Framework\TestCase;
11use RuntimeException;
12
13/**
14 * @covers \Deriver\Exception\EvaluationContractException
15 */
16#[CoversClass(EvaluationContractException::class)]
17#[Small]
18final class EvaluationContractExceptionTest extends TestCase
19{
20 public function testGetMessagePreservesTheModelFailureCause(): void
21 {
22 $cause = new RuntimeException('source failure');
23 $exception = new EvaluationContractException('evaluator failure', previous: $cause);
24 self::assertSame('evaluator failure', $exception->getMessage());
25 self::assertSame($cause, $exception->getPrevious());
26 }
27}
28