/** * @test */ public function it_assigns_cargo_to_route_described_by_itinerary() { $routeSpecification = new RouteSpecification("Hongkong", "Hamburg"); $cargo = new Cargo(new TrackingId(Uuid::uuid4()), $routeSpecification); $legs = [LegFixture::get(LegFixture::HONGKONG_NEWYORK), LegFixture::get(LegFixture::NEWYORK_HAMBURG)]; $itinerary = new Itinerary($legs); $cargo->assignToRoute($itinerary); $this->assertTrue($itinerary->sameValueAs($cargo->itinerary())); }
/** * @param Cargo $aCargo * @return CargoRoutingDto */ public function toDto(Cargo $aCargo) { $cargoRoutingDto = new CargoRoutingDto(); $cargoRoutingDto->setTrackingId($aCargo->trackingId()->toString()); $cargoRoutingDto->setOrigin($aCargo->origin()); $cargoRoutingDto->setFinalDestination($aCargo->routeSpecification()->destination()); foreach ($aCargo->itinerary()->legs() as $leg) { $legDto = new LegDto(); $legDto->setLoadLocation($leg->loadLocation()); $legDto->setUnloadLocation($leg->unloadLocation()); $legDto->setLoadTime($leg->loadTime()->format(\DateTime::ISO8601)); $legDto->setUnloadTime($leg->unloadTime()->format(\DateTime::ISO8601)); $cargoRoutingDto->addLeg($legDto); } return $cargoRoutingDto; }