package net.java.cargotracker.interfaces.booking.facade.internal.assembler; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.util.Arrays; import java.util.Date; import net.java.cargotracker.domain.model.cargo.Cargo; import net.java.cargotracker.domain.model.cargo.Itinerary; import net.java.cargotracker.domain.model.cargo.Leg; import net.java.cargotracker.domain.model.cargo.RouteSpecification; import net.java.cargotracker.domain.model.cargo.TrackingId; import net.java.cargotracker.domain.model.location.Location; import net.java.cargotracker.domain.model.location.SampleLocations; import net.java.cargotracker.domain.model.voyage.SampleVoyages; import net.java.cargotracker.interfaces.booking.facade.dto.CargoRoute; import org.junit.Test; // TODO This set of tests is very trivial, consider removing them. public class CargoRouteDtoAssemblerTest { @Test public void testToDto() { CargoRouteDtoAssembler assembler = new CargoRouteDtoAssembler(); Location origin = SampleLocations.STOCKHOLM; Location destination = SampleLocations.MELBOURNE; Cargo cargo = new Cargo(new TrackingId("XYZ"), new RouteSpecification( origin, destination, new Date())); Itinerary itinerary = new Itinerary( Arrays.asList(new Leg(SampleVoyages.CM001, origin, SampleLocations.SHANGHAI, new Date(), new Date()), new Leg(SampleVoyages.CM001, SampleLocations.ROTTERDAM, destination, new Date(), new Date()))); cargo.assignToRoute(itinerary); CargoRoute dto = assembler.toDto(cargo); assertEquals(2, dto.getLegs().size()); net.java.cargotracker.interfaces.booking.facade.dto.Leg legDto = dto .getLegs().get(0); assertEquals("CM001", legDto.getVoyageNumber()); assertEquals("SESTO", legDto.getFrom()); assertEquals("CNSHA", legDto.getTo()); legDto = dto.getLegs().get(1); assertEquals("CM001", legDto.getVoyageNumber()); assertEquals("NLRTM", legDto.getFrom()); assertEquals("AUMEL", legDto.getTo()); } @Test public void testToDtoNoItinerary() throws Exception { CargoRouteDtoAssembler assembler = new CargoRouteDtoAssembler(); Cargo cargo = new Cargo(new TrackingId("XYZ"), new RouteSpecification( SampleLocations.STOCKHOLM, SampleLocations.MELBOURNE, new Date())); CargoRoute dto = assembler.toDto(cargo); assertEquals("XYZ", dto.getTrackingId()); assertEquals("Stockholm", dto.getOrigin()); assertEquals("Melbourne", dto.getFinalDestination()); assertTrue(dto.getLegs().isEmpty()); } }