
USE CASE        Inspect Loaded Cargo [subfunction]
===========================================================================
A Delivery Inspector inspects and updates the delivery status of a loaded cargo.


Primary actor.. Delivery Inspector
Scope.......... Handling Monitoring System in shipping application
Preconditions.. Cargo has been loaded onto a carrier.
Trigger........ Delivery Inspector receives request to inspect the delivery status of loaded cargo.


Main Success Scenario
---------------------------------------------------------------------------
1. Delivery Inspector collects known delivery data.
2. Delivery Inspector determines next expected unload from carrier.
3. Delivery Inspector verifies that cargo is routed.
4. Delivery Inspector verifies that cargo is on track.
5. Delivery Inspector saves cargo delivery snapshot.


Deviations
---------------------------------------------------------------------------
2a. Cargo loaded onto carrier without being routed:
    1. Delivery Inspector marks cargo as non-routed and misdirected (??).
    2. Delivery Inspector saves delivery snapshot (step 5).
    3. Delivery Inspector sends notification of non-routed cargo and exits.

2b. Voyage schedule has changed:
    1. Delivery Inspector marks cargo as non-routed and misdirected (??).
    2. Delivery Inspector saves delivery snapshot (step 5).
    3. Delivery Inspector sends notification of non-routed cargo and exits.

3a. Cargo has no itinerary:
    1. Delivery Inspector marks cargo as non-routed and saves delivery snapshot.
    2. Delivery Inspector sends notification of non-routed cargo and exits.

3b. RouteSpecification is not satisfied by Itinerary:
    1. Delivery Inspector marks cargo as misrouted and saves delivery snapshot.
    2. Delivery Inspector sends notification of misrouted cargo and exits.

4a. Voyage schedule didn't expect load location:
    1. Delivery Inspector marks cargo as misdirected and saves delivery snapshot.
    2. Delivery Inspector sends notification of misdirected cargo and exits.

4b. Itinerary didn't expect load location:
    1. Delivery Inspector marks cargo as misdirected and saves delivery snapshot.
    2. Delivery Inspector sends notification of misdirected cargo and exits.

4c. Itinerary didn't expect voyage:
    1. Delivery Inspector marks cargo as misdirected and saves delivery snapshot.
    2. Delivery Inspector sends notification of misdirected cargo and exits.

4d. Itinerary didn't expect voyage but arrival location of carrier is expected:
    1. Delivery Inspector marks cargo as misdirected and saves delivery snapshot.
    2. Delivery Inspector notifies shipper of (for them unexpected) cargo to be unloaded in next port.

4e. Itinerary didn't expect voyage arrival location:
    1. Delivery Inspector marks cargo as misdirected and saves delivery snapshot.
    2. Delivery Inspector sends notification of misdirected cargo and exits.