Files
Mangarr/tests/Domain/Scraping/Adapter/InMemoryChapterRepository.php

39 lines
1009 B
PHP

<?php
namespace App\Tests\Domain\Scraping\Adapter;
use App\Domain\Scraping\Domain\Contract\Repository\ChapterRepositoryInterface;
use App\Domain\Scraping\Domain\Model\Chapter;
use App\Domain\Scraping\Domain\Exception\ChapterNotFoundException;
class InMemoryChapterRepository implements ChapterRepositoryInterface
{
private array $chapters = [];
public function getById(string $id): ?Chapter
{
return $this->chapters[$id] ?? null;
}
public function getByMangaIdAndChapterNumber(string $mangaId, float $chapterNumber): Chapter
{
foreach ($this->chapters as $chapter) {
if ($chapter->mangaId === $mangaId && $chapter->chapterNumber === $chapterNumber) {
return $chapter;
}
}
throw new ChapterNotFoundException();
}
public function save(Chapter $chapter): void
{
$this->chapters[$chapter->id] = $chapter;
}
public function clear(): void
{
$this->chapters = [];
}
}