extract to setUp and test that carrier and freight orders know about each other
This commit is contained in:
parent
4971b86180
commit
0afdaa76d6
1 changed files with 47 additions and 4 deletions
|
|
@ -2,14 +2,27 @@
|
|||
|
||||
namespace Tests\Unit\FreightOrder\UseCases;
|
||||
|
||||
use FreightQuote\Carrier\Carrier;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use FreightQuote\FreightOrder\UseCases\CreateFreightOrder;
|
||||
use FreightQuote\FreightOrder\UseCases\CreateFreightOrderRequestDTO;
|
||||
use Tests\Fakes\Carrier\FakeCarrierRepository;
|
||||
use Tests\Fakes\FreightOrder\FakeFreightOrderRepository;
|
||||
use DateTime;
|
||||
|
||||
class CreateFreightOrderTest extends TestCase
|
||||
{
|
||||
private FakeFreightOrderRepository $freightOrderRepo;
|
||||
private FakeCarrierRepository $carrierRepo;
|
||||
private CreateFreightOrder $useCase;
|
||||
|
||||
public function setUp(): void
|
||||
{
|
||||
$this->freightOrderRepo = new FakeFreightOrderRepository();
|
||||
$this->carrierRepo = new FakeCarrierRepository();
|
||||
$this->useCase = new CreateFreightOrder($this->freightOrderRepo);
|
||||
}
|
||||
|
||||
public function test_create_freight_order(): void
|
||||
{
|
||||
$dto = new CreateFreightOrderRequestDTO(
|
||||
|
|
@ -21,10 +34,8 @@ class CreateFreightOrderTest extends TestCase
|
|||
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 = $this->useCase->execute($dto);
|
||||
$foundFreightOrder = $this->freightOrderRepo->find(
|
||||
$createdFreightOrder->getId()
|
||||
);
|
||||
$this->assertNotNull($foundFreightOrder);
|
||||
|
|
@ -36,4 +47,36 @@ class CreateFreightOrderTest extends TestCase
|
|||
$this->assertEquals($dto->notes, $foundFreightOrder->getNotes());
|
||||
$this->assertEquals($dto->fileAttachments, $foundFreightOrder->getFileAttachments());
|
||||
}
|
||||
|
||||
public function test_carrier_is_connected_to_order(): void
|
||||
{
|
||||
$carrierId = 0;
|
||||
$this->carrierRepo->save(new Carrier(
|
||||
id: $carrierId,
|
||||
email: 'test@email.com',
|
||||
companyName: 'company name',
|
||||
contactPerson: 'person',
|
||||
phoneNumber: '123456798',
|
||||
notes: 'some notes',
|
||||
loadProfile: 'LTL/FTL',
|
||||
countriesServing: ['USA'],
|
||||
freightOrders: [],
|
||||
));
|
||||
$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'],
|
||||
carrierIds: [$carrierId],
|
||||
);
|
||||
$createdFreightOrder = $this->useCase->execute($dto);
|
||||
$foundCarrier = $this->carrierRepo->find($carrierId);
|
||||
$this->assertEquals(
|
||||
[$createdFreightOrder->getId()],
|
||||
$foundCarrier->getOrderIds()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue