public function __invoke(ServerRequestInterface $request, ResponseInterface $response) { $data = $request->getParsedBody(); Assertion::keyExists($data, 'origin'); Assertion::keyExists($data, 'destination'); $trackingId = $this->bookingService->bookNewCargo($data['origin'], $data['destination']); return new JsonResponse(['trackingId' => $trackingId]); }
/** * @test */ public function it_lists_all_stored_cargos() { $trackingIdOne = $this->bookingService->bookNewCargo('USNYC', 'DEHAM'); $trackingIdTwo = $this->bookingService->bookNewCargo('NLRTM', 'USNYC'); $cargoRoutingDtos = $this->bookingService->listAllCargos(); $this->assertEquals(2, count($cargoRoutingDtos)); $generatedTrackingIds = [$trackingIdOne, $trackingIdTwo]; foreach ($cargoRoutingDtos as $cargoRoutingDto) { $this->assertTrue(in_array($cargoRoutingDto->getTrackingId(), $generatedTrackingIds)); } }