Attainly/backend/tests/Unit/Set/UseCases/ListSetsTest.php

40 lines
1 KiB
PHP

<?php
namespace Tests\Unit\Set\UseCases;
use App\Set\CreateSetDto;
use App\Set\UseCases\ListSets\ListSets;
use App\Shared\ValueObject\EmailAddress;
use App\User\User;
use PHPUnit\Framework\TestCase;
use Tests\Fakes\FakeSetRepository;
class ListSetsTest extends TestCase
{
public function test_it_lists_every_available_set_alphabetically(): void
{
$creator = new User(
id: 7,
email: new EmailAddress('creator@example.com'),
passwordHash: 'hashed-password',
);
$repository = new FakeSetRepository;
$repository->create(new CreateSetDto(
name: 'Course',
creator: $creator,
));
$repository->create(new CreateSetDto(
name: 'Bible',
creator: $creator,
));
$sets = (new ListSets($repository))->execute();
$this->assertSame(
['Bible', 'Course'],
array_map(function ($set): string {
return $set->getName();
}, $sets),
);
}
}