45 lines
975 B
PHP
45 lines
975 B
PHP
<?php
|
|
|
|
namespace App\Tests\Domain\Scraping\Adapter;
|
|
|
|
use App\Domain\Scraping\Domain\Contract\Repository\ScrapingJobRepositoryInterface;
|
|
use App\Domain\Scraping\Domain\Model\ScrapingJob;
|
|
|
|
class InMemoryScrapingJobRepository implements ScrapingJobRepositoryInterface
|
|
{
|
|
/** @var ScrapingJob[] */
|
|
private array $jobs = [];
|
|
|
|
public function save(ScrapingJob $job): void
|
|
{
|
|
$this->jobs[] = $job;
|
|
}
|
|
|
|
public function getJobs(): array
|
|
{
|
|
return $this->jobs;
|
|
}
|
|
|
|
public function findById(string $id): ?ScrapingJob
|
|
{
|
|
foreach ($this->jobs as $job) {
|
|
if ($job->getId() === $id) {
|
|
return $job;
|
|
}
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
public function findByChapterId(string $chapterId): ?ScrapingJob
|
|
{
|
|
foreach ($this->jobs as $job) {
|
|
if ($job->getChapterId() === $chapterId) {
|
|
return $job;
|
|
}
|
|
}
|
|
|
|
return null;
|
|
}
|
|
}
|