packages/deriver/tests/Unit/Deriver/Candidate/ResultSetTest.php

1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Deriver\Candidate;
6
7use Deriver\Deriver\Candidate\CandidateCollection;
8use Deriver\Deriver\Candidate\ResultRef;
9use Deriver\Deriver\Candidate\ResultSet;
10use Deriver\Deriver\Candidate\Statistics;
11use PHPUnit\Framework\Attributes\CoversClass;
12use PHPUnit\Framework\Attributes\Small;
13use PHPUnit\Framework\Attributes\UsesClass;
14use PHPUnit\Framework\TestCase;
15
16#[CoversClass(ResultSet::class)]
17#[UsesClass(CandidateCollection::class)]
18#[UsesClass(ResultRef::class)]
19#[UsesClass(Statistics::class)]
20#[Small]
21final class ResultSetTest extends TestCase
22{
23    public function testPreservesItsSemanticContract(): void
24    {
25        $first = new CandidateCollection([], new ResultRef('first'));
26        $second = new CandidateCollection([], new ResultRef('second'));
27        $batch = new ResultSet([$second, $first]);
28        self::assertSame([$second, $first], $batch->results);
29        self::assertSame('second', $batch->results[0]->reference->id);
30        self::assertSame('first', $batch->results[1]->reference->id);
31    }
32}
33