40 lines
1 KiB
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),
|
|
);
|
|
}
|
|
}
|