test create freight order

This commit is contained in:
Yisroel Baum 2025-11-12 22:11:41 +02:00
parent 423439e897
commit 14d7ddfdd3
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9

View file

@ -6,25 +6,34 @@ use PHPUnit\Framework\TestCase;
use FreightQuote\FreightOrder\UseCases\CreateFreightOrder;
use FreightQuote\FreightOrder\UseCases\CreateFreightOrderRequestDTO;
use Tests\Fakes\FreightOrder\FakeFreightOrderRepository;
use DateTime;
class CreateFreightOrderTest extends TestCase
{
private CreateFreightOrderRequestDTO $dto;
private FakeFreightOrderRepository $freightOrderRepo;
private CreateFreightOrder $useCase;
public function setUp(): void
{
$this->dto = new CreateFreightOrderRequestDTO();
$this->freightOrderRepo = new FakeFreightOrderRepository();
$this->useCase = new CreateFreightOrder($this->dto);
}
public function test_create_freight_order(): void
{
$createdFreightOrder = $this->useCase->execute();
$this->assertNotNull($this->freightOrderRepo->find(
$dto = new CreateFreightOrderRequestDTO(
shipFrom: 'ny',
shipTo: 'nj',
pickupDate: new DateTime('+5 days'),
deliveryDeadline: new DateTime('+10 days'),
loadDetails: 'some details',
notes: 'some notes',
fileAttachments: ['path/to/file', 'another/path/file'],
);
$freightOrderRepo = new FakeFreightOrderRepository();
$useCase = new CreateFreightOrder($freightOrderRepo);
$createdFreightOrder = $useCase->execute($dto);
$foundFreightOrder = $freightOrderRepo->find(
$createdFreightOrder->getId()
));
);
$this->assertNotNull($foundFreightOrder);
$this->assertEquals($dto->shipFrom, $foundFreightOrder->getShipFrom());
$this->assertEquals($dto->shipTo, $foundFreightOrder->getShipTo());
$this->assertEquals($dto->pickupDate, $foundFreightOrder->getPickupDate());
$this->assertEquals($dto->deliveryDeadline, $foundFreightOrder->getDeliveryDeadline());
$this->assertEquals($dto->loadDetails, $foundFreightOrder->getLoadDetails());
$this->assertEquals($dto->notes, $foundFreightOrder->getNotes());
$this->assertEquals($dto->fileAttachments, $foundFreightOrder->getFileAttachments());
}
}