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
|
|
@ -2,12 +2,58 @@
|
|||
|
||||
namespace Tests\Fakes\FreightOrder;
|
||||
|
||||
use FreightQuote\FreightOrder\FreightOrderRepository;
|
||||
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