freight order repo and fake impls of find and save
This commit is contained in:
parent
3be8eee948
commit
6ad041a945
2 changed files with 59 additions and 3 deletions
10
src/FreightOrder/FreightOrderRepository.php
Normal file
10
src/FreightOrder/FreightOrderRepository.php
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace FreightQuote\FreightOrder;
|
||||||
|
|
||||||
|
interface FreightOrderRepository
|
||||||
|
{
|
||||||
|
public function find(int $id): ?FreightOrder;
|
||||||
|
|
||||||
|
public function save(FreightOrder $freightOrder): FreightOrder;
|
||||||
|
}
|
||||||
|
|
@ -2,12 +2,58 @@
|
||||||
|
|
||||||
namespace Tests\Fakes\FreightOrder;
|
namespace Tests\Fakes\FreightOrder;
|
||||||
|
|
||||||
|
use FreightQuote\FreightOrder\FreightOrderRepository;
|
||||||
use FreightQuote\FreightOrder\FreightOrder;
|
use FreightQuote\FreightOrder\FreightOrder;
|
||||||
|
|
||||||
class FakeFreightOrderRepository
|
class FakeFreightOrderRepository implements FreightOrderRepository
|
||||||
{
|
{
|
||||||
public function find(): ?FreightOrder
|
/**
|
||||||
|
* @var FreightOrder[]
|
||||||
|
*/
|
||||||
|
private array $existingFreightOrders = [];
|
||||||
|
|
||||||
|
public function find(int $id): ?FreightOrder
|
||||||
{
|
{
|
||||||
return new FreightOrder();
|
foreach ($this->existingFreightOrders as $freightOrder) {
|
||||||
|
if ($freightOrder->getId() === $id) {
|
||||||
|
return new FreightOrder(
|
||||||
|
$freightOrder->getId(),
|
||||||
|
$freightOrder->getShipFrom(),
|
||||||
|
$freightOrder->getShipTo(),
|
||||||
|
$freightOrder->getPickupDate(),
|
||||||
|
$freightOrder->getDeliveryDeadline(),
|
||||||
|
$freightOrder->getLoadDetails(),
|
||||||
|
$freightOrder->getNotes(),
|
||||||
|
$freightOrder->getFileAttachments(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function save(FreightOrder $freightOrder): FreightOrder
|
||||||
|
{
|
||||||
|
$id = $freightOrder->getId();
|
||||||
|
if ($id === null) {
|
||||||
|
$id = $this->getNextId();
|
||||||
|
$freightOrder->setId($id);
|
||||||
|
}
|
||||||
|
$this->existingFreightOrders[$id] = $freightOrder;
|
||||||
|
return new FreightOrder(
|
||||||
|
$freightOrder->getId(),
|
||||||
|
$freightOrder->getShipFrom(),
|
||||||
|
$freightOrder->getShipTo(),
|
||||||
|
$freightOrder->getPickupDate(),
|
||||||
|
$freightOrder->getDeliveryDeadline(),
|
||||||
|
$freightOrder->getLoadDetails(),
|
||||||
|
$freightOrder->getNotes(),
|
||||||
|
$freightOrder->getFileAttachments(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getNextId(): int
|
||||||
|
{
|
||||||
|
return count($this->existingFreightOrders);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue