Goal-Calibration/tests/Fakes/FakeScheduledNodeRepository.php

30 lines
727 B
PHP

<?php
namespace Tests\Fakes;
use App\ScheduledNode\CreateScheduledNodeDto;
use App\ScheduledNode\ScheduledNode;
use App\ScheduledNode\ScheduledNodeRepository;
class FakeScheduledNodeRepository implements ScheduledNodeRepository
{
private array $existingScheduledNodes = [];
public function create(CreateScheduledNodeDto $dto): ScheduledNode
{
$id = $this->nextId();
$scheduledNode = new ScheduledNode(
id: $id,
date: $dto->date,
plan: $dto->plan,
);
$this->existingScheduledNodes[$id] = $scheduledNode;
return $scheduledNode;
}
public function nextId(): int
{
return count($this->existingScheduledNodes);
}
}