package org.sculptor.dddsample.cargo.serviceapi;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.sculptor.dddsample.cargo.domain.TrackingId.trackingId;
import java.util.List;
import org.junit.Test;
import org.sculptor.dddsample.cargo.domain.Itinerary;
import org.sculptor.dddsample.cargo.domain.TrackingId;
import org.sculptor.dddsample.location.domain.UnLocode;
import org.sculptor.framework.test.AbstractDbUnitJpaTests;
import org.springframework.beans.factory.annotation.Autowired;
/**
* Spring based transactional test with DbUnit support.
*/
public class BookingServiceTest extends AbstractDbUnitJpaTests implements BookingServiceTestBase {
private BookingService bookingService;
@Autowired
public void setBookingService(BookingService bookingService) {
this.bookingService = bookingService;
}
@Override
protected String getDataSetFile() {
return "dbunit/TestData.xml";
}
@Test
public void testBookNewCargo() throws Exception {
UnLocode fromUnlocode = new UnLocode("USCHI");
UnLocode toUnlocode = new UnLocode("SESTO");
TrackingId trackingId = bookingService.bookNewCargo(getServiceContext(), fromUnlocode, toUnlocode);
assertNotNull(trackingId);
}
@Test
public void testRequestPossibleRoutesForCargo() throws Exception {
TrackingId trackingId = trackingId("FGH");
List<Itinerary> itinaries = bookingService.requestPossibleRoutesForCargo(getServiceContext(), trackingId);
assertNotNull(itinaries);
assertTrue(itinaries.size() > 0);
}
@Test
public void testAssignCargoToRoute() throws Exception {
TrackingId trackingId = trackingId("XYZ");
List<Itinerary> itinaries = bookingService.requestPossibleRoutesForCargo(getServiceContext(), trackingId);
assertNotNull(itinaries);
assertTrue(itinaries.size() > 0);
bookingService.assignCargoToRoute(getServiceContext(), trackingId, itinaries.get(0));
}
}