fake carrier repo

This commit is contained in:
Yisroel Baum 2025-11-06 10:17:55 +02:00
parent 4ff6cb9879
commit 998ac12d61
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9

View file

@ -0,0 +1,39 @@
<?php
namespace Tests\Fakes\Carrier;
use FreightQuote\Carrier\Carrier;
use FreightQuote\Carrier\CarrierRepository;
class FakeCarrierRepository implements CarrierRepository
{
private array $existingCarriers = [];
public function find(int $id): ?Carrier
{
foreach ($this->existingCarriers as $carrier) {
if ($carrier->getId() === $id) {
return new Carrier($id, $carrier->getEmail());
}
}
return null;
}
public function save(Carrier $carrier): Carrier
{
$id = $carrier->getId();
if ($id === null) {
$id = $this->autoIncrementId();
$carrier->setId($id);
}
$this->existingCarriers[$id] = $carrier;
return new Carrier($id, $carrier->getEmail());
}
private function autoIncrementId(): int
{
return count($this->existingCarriers);
}
}