/** * @test */ public function it_stores_and_returns_a_cargo() { $trackingId = $this->cargoRepository->getNextTrackingId(); $routeSpecification = new RouteSpecification("Hongkong", "Hamburg"); $cargo = new Cargo\Cargo($trackingId, $routeSpecification); $legs = [LegFixture::get(LegFixture::HONGKONG_NEWYORK), LegFixture::get(LegFixture::NEWYORK_HAMBURG)]; $itinerary = new Cargo\Itinerary($legs); $cargo->assignToRoute($itinerary); $this->cargoRepository->store($cargo); $this->getTestEntityManager()->clear(); $checkCargo = $this->cargoRepository->get($trackingId); $this->assertTrue($cargo->sameIdentityAs($checkCargo)); $this->assertTrue($itinerary->sameValueAs($checkCargo->itinerary())); }
/** * @return CargoRoutingDto[] */ public function listAllCargos() { $cargos = $this->cargoRepository->getAll(); $cargoRoutingDtos = array(); $cargoRoutingDtoAssembler = new CargoRoutingDtoAssembler(); foreach ($cargos as $cargo) { $cargoRoutingDtos[] = $cargoRoutingDtoAssembler->toDto($cargo); } return $cargoRoutingDtos; }
/** * @test */ public function it_assigns_cargo_to_route() { $trackingId = $this->bookingService->bookNewCargo('USNYC', 'DEHAM'); $routeCandidates = $this->bookingService->requestPossibleRoutesForCargo($trackingId); $this->bookingService->assignCargoToRoute($trackingId, $routeCandidates[0]); $cargo = $this->cargoRepository->get(TrackingId::fromString($trackingId)); $legs = $cargo->itinerary()->legs(); $this->assertEquals(1, count($legs)); $this->assertEquals('USNYC', $legs[0]->loadLocation()); $this->assertEquals('DEHAM', $legs[0]->unloadLocation()); }