Search in sources :

Example 16 with Delivery

use of org.qi4j.sample.dcicargo.sample_a.data.shipping.delivery.Delivery in project qi4j-sdk by Qi4j.

the class RegisterHandlingEventTest method step_3_to_5_ValidRegistration__Load_in_Hong_Kong.

@Test
public void step_3_to_5_ValidRegistration__Load_in_Hong_Kong() throws Exception {
    new RegisterHandlingEvent(time, time, trackId, "LOAD", "CNHKG", "V100S").register();
    Delivery delivery = cargo.delivery().get();
    assertThat(delivery.routingStatus().get(), is(equalTo(RoutingStatus.ROUTED)));
    assertThat(delivery.transportStatus().get(), is(equalTo(TransportStatus.ONBOARD_CARRIER)));
    assertThat(delivery.nextExpectedHandlingEvent().get().handlingEventType().get(), is(equalTo(UNLOAD)));
    assertThat(delivery.nextExpectedHandlingEvent().get().location().get(), is(equalTo(NEWYORK)));
    assertThat(delivery.nextExpectedHandlingEvent().get().voyage().get(), is(equalTo(V100S)));
    assertThat(delivery.lastKnownLocation().get(), is(equalTo(HONGKONG)));
    assertThat(delivery.currentVoyage().get(), is(equalTo(V100S)));
    assertThat(delivery.eta().get(), is(equalTo(arrival)));
    assertThat(delivery.isMisdirected().get(), is(equalTo(false)));
    assertThat(delivery.isUnloadedAtDestination().get(), is(equalTo(false)));
}
Also used : Delivery(org.qi4j.sample.dcicargo.sample_a.data.shipping.delivery.Delivery) Test(org.junit.Test)

Example 17 with Delivery

use of org.qi4j.sample.dcicargo.sample_a.data.shipping.delivery.Delivery in project qi4j-sdk by Qi4j.

the class BuildDeliverySnapshotTest method deviation_2d_UnsatisfyingItinerary_missedDeadline.

@Test
public void deviation_2d_UnsatisfyingItinerary_missedDeadline() throws Exception {
    deviation_2d_UnsatisfyingItinerary_wrongDestination();
    // Arrival on day 12 according to itinerary is not meeting deadline
    RouteSpecification routeSpec = routeSpecification(HONGKONG, STOCKHOLM, day(14));
    cargo.routeSpecification().set(routeSpec);
    Delivery delivery = new BuildDeliverySnapshot(cargo).get();
    // Route specification not satisfied by itinerary
    assertFalse(routeSpec.arrivalDeadline().get().after(itinerary.finalArrivalDate()));
    assertThat(delivery.routingStatus().get(), is(equalTo(RoutingStatus.MISROUTED)));
}
Also used : RouteSpecification(org.qi4j.sample.dcicargo.sample_a.data.shipping.cargo.RouteSpecification) Delivery(org.qi4j.sample.dcicargo.sample_a.data.shipping.delivery.Delivery) Test(org.junit.Test)

Example 18 with Delivery

use of org.qi4j.sample.dcicargo.sample_a.data.shipping.delivery.Delivery in project qi4j-sdk by Qi4j.

the class BuildDeliverySnapshotTest method deviation_4b_LOAD_2c_ExpectedButLaterVoyageInItinerary.

@Test
public void deviation_4b_LOAD_2c_ExpectedButLaterVoyageInItinerary() throws Exception {
    deviation_4b_LOAD_2c_UnexpectedVoyageNotFromItinerary();
    UnitOfWork uow = module.currentUnitOfWork();
    HandlingEventsEntity HANDLING_EVENTS = uow.get(HandlingEventsEntity.class, HandlingEventsEntity.HANDLING_EVENTS_ID);
    // The system doesn't currently check if handling events happen in the right order, so
    // a cargo can now suddenly load in New York, even though it hasn't got there yet.
    HandlingEvent handlingEvent = HANDLING_EVENTS.createHandlingEvent(day(5), day(5), trackingId, LOAD, NEWYORK, V200T);
    Delivery delivery = new BuildDeliverySnapshot(cargo, handlingEvent).get();
    // Should have been true, but we accept it for now...
    assertThat(delivery.isMisdirected().get(), is(equalTo(false)));
    assertThat(delivery.routingStatus().get(), is(equalTo(RoutingStatus.ROUTED)));
    assertThat(delivery.transportStatus().get(), is(equalTo(TransportStatus.ONBOARD_CARRIER)));
    assertThat(delivery.lastHandlingEvent().get(), is(equalTo(handlingEvent)));
    assertThat(delivery.lastKnownLocation().get(), is(equalTo(NEWYORK)));
    assertThat(delivery.currentVoyage().get(), is(equalTo(V200T)));
    // We expect the cargo to be unloaded from voyage V200T in Dallas
    assertThat(delivery.nextExpectedHandlingEvent().get().handlingEventType().get(), is(equalTo(UNLOAD)));
    assertThat(delivery.nextExpectedHandlingEvent().get().location().get(), is(equalTo(DALLAS)));
    assertThat(delivery.nextExpectedHandlingEvent().get().voyage().get(), is(equalTo(V200T)));
}
Also used : UnitOfWork(org.qi4j.api.unitofwork.UnitOfWork) HandlingEvent(org.qi4j.sample.dcicargo.sample_a.data.shipping.handling.HandlingEvent) Delivery(org.qi4j.sample.dcicargo.sample_a.data.shipping.delivery.Delivery) HandlingEventsEntity(org.qi4j.sample.dcicargo.sample_a.data.entity.HandlingEventsEntity) Test(org.junit.Test)

Example 19 with Delivery

use of org.qi4j.sample.dcicargo.sample_a.data.shipping.delivery.Delivery in project qi4j-sdk by Qi4j.

the class BuildDeliverySnapshotTest method deviation_4d_CUSTOMS_1a_CargoIsInDestinationPort.

@Test
public void deviation_4d_CUSTOMS_1a_CargoIsInDestinationPort() throws Exception {
    deviation_4c_UNLOAD_1c_Destination();
    UnitOfWork uow = module.currentUnitOfWork();
    HandlingEventsEntity HANDLING_EVENTS = uow.get(HandlingEventsEntity.class, HandlingEventsEntity.HANDLING_EVENTS_ID);
    // Cargo was handled by the customs authorities
    HandlingEvent handlingEvent = HANDLING_EVENTS.createHandlingEvent(day(16), day(16), trackingId, CUSTOMS, STOCKHOLM, null);
    Delivery delivery = new BuildDeliverySnapshot(cargo, handlingEvent).get();
    assertThat(delivery.isMisdirected().get(), is(equalTo(false)));
    assertThat(delivery.routingStatus().get(), is(equalTo(RoutingStatus.ROUTED)));
    assertThat(delivery.transportStatus().get(), is(equalTo(TransportStatus.IN_PORT)));
    assertThat(delivery.lastHandlingEvent().get(), is(equalTo(handlingEvent)));
    assertThat(delivery.lastKnownLocation().get(), is(equalTo(STOCKHOLM)));
    assertThat(delivery.currentVoyage().get(), is(equalTo(null)));
    // Cargo might be at destination, but the last handling event wasn't unloading
    assertThat(delivery.isUnloadedAtDestination().get(), is(equalTo(true)));
    // Shouldn't we expect the cargo to be claimed by the customer now ?
    assertThat(delivery.nextExpectedHandlingEvent().get(), is(equalTo(null)));
}
Also used : UnitOfWork(org.qi4j.api.unitofwork.UnitOfWork) HandlingEvent(org.qi4j.sample.dcicargo.sample_a.data.shipping.handling.HandlingEvent) Delivery(org.qi4j.sample.dcicargo.sample_a.data.shipping.delivery.Delivery) HandlingEventsEntity(org.qi4j.sample.dcicargo.sample_a.data.entity.HandlingEventsEntity) Test(org.junit.Test)

Example 20 with Delivery

use of org.qi4j.sample.dcicargo.sample_a.data.shipping.delivery.Delivery in project qi4j-sdk by Qi4j.

the class BuildDeliverySnapshotTest method deviation_4e_CLAIM_1a_CargoIsNotInDestinationPort.

@Test
public void deviation_4e_CLAIM_1a_CargoIsNotInDestinationPort() throws Exception {
    deviation_4d_CUSTOMS_1a_CargoIsInDestinationPort();
    UnitOfWork uow = module.currentUnitOfWork();
    HandlingEventsEntity HANDLING_EVENTS = uow.get(HandlingEventsEntity.class, HandlingEventsEntity.HANDLING_EVENTS_ID);
    // Cargo was claimed but not at destination location
    HandlingEvent handlingEvent = HANDLING_EVENTS.createHandlingEvent(day(1), day(16), trackingId, CLAIM, HELSINKI, null);
    Delivery delivery = new BuildDeliverySnapshot(cargo, handlingEvent).get();
    assertThat(delivery.isMisdirected().get(), is(equalTo(true)));
    assertThat(delivery.nextExpectedHandlingEvent().get(), is(equalTo(null)));
    assertThat(delivery.eta().get(), is(equalTo(null)));
    assertThat(delivery.routingStatus().get(), is(equalTo(RoutingStatus.ROUTED)));
    assertThat(delivery.transportStatus().get(), is(equalTo(TransportStatus.CLAIMED)));
    assertThat(delivery.lastHandlingEvent().get(), is(equalTo(handlingEvent)));
    assertThat(delivery.lastKnownLocation().get(), is(equalTo(HELSINKI)));
    assertThat(delivery.currentVoyage().get(), is(equalTo(null)));
    // Cargo is claimed but has not arrived yet in destination port
    assertThat(delivery.isUnloadedAtDestination().get(), is(equalTo(false)));
}
Also used : UnitOfWork(org.qi4j.api.unitofwork.UnitOfWork) HandlingEvent(org.qi4j.sample.dcicargo.sample_a.data.shipping.handling.HandlingEvent) Delivery(org.qi4j.sample.dcicargo.sample_a.data.shipping.delivery.Delivery) HandlingEventsEntity(org.qi4j.sample.dcicargo.sample_a.data.entity.HandlingEventsEntity) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)23 Delivery (org.qi4j.sample.dcicargo.sample_a.data.shipping.delivery.Delivery)23 UnitOfWork (org.qi4j.api.unitofwork.UnitOfWork)17 HandlingEventsEntity (org.qi4j.sample.dcicargo.sample_a.data.entity.HandlingEventsEntity)14 HandlingEvent (org.qi4j.sample.dcicargo.sample_a.data.shipping.handling.HandlingEvent)12 RouteSpecification (org.qi4j.sample.dcicargo.sample_a.data.shipping.cargo.RouteSpecification)7 Date (java.util.Date)3 Cargo (org.qi4j.sample.dcicargo.sample_a.data.shipping.cargo.Cargo)3 Cargos (org.qi4j.sample.dcicargo.sample_a.data.shipping.cargo.Cargos)3 BuildDeliverySnapshot (org.qi4j.sample.dcicargo.sample_a.context.shipping.booking.BuildDeliverySnapshot)2 TrackingId (org.qi4j.sample.dcicargo.sample_a.data.shipping.cargo.TrackingId)2 Itinerary (org.qi4j.sample.dcicargo.sample_a.data.shipping.itinerary.Itinerary)2 Location (org.qi4j.sample.dcicargo.sample_a.data.shipping.location.Location)2