diff --git a/tests/Unit/FreightOrder/UseCases/CreateFreightOrderTest.php b/tests/Unit/FreightOrder/UseCases/CreateFreightOrderTest.php index 75a3b1e..16311b0 100644 --- a/tests/Unit/FreightOrder/UseCases/CreateFreightOrderTest.php +++ b/tests/Unit/FreightOrder/UseCases/CreateFreightOrderTest.php @@ -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()); } }