def test_customs(self): input = jso({ "last_event": { "location": "DEF", "event_type": "CUSTOMS" }, "itinerary": [{ "load": { "location": "ABC" }, "unload": { "location": "DEF", "time": 1526897537633 }, "voyage": "XYZ" }, { "load": { "location": "DEF", "time": 1526897537633 }, "voyage": "STU" }] }) self.assertEqual({'event_type': 'NO_ACTIVITY'}, calculate_next_activity(input.last_event, input.itinerary))
def test_unload_load(self): input = jso({ "last_event": { "location": "DEF", "voyage": "XYZ", "event_type": "UNLOAD" }, "itinerary": [{ "load": { "location": "ABC" }, "unload": { "location": "DEF", "time": 1526897537633 }, "voyage": "XYZ" }, { "load": { "location": "DEF", "time": 1526897537633 }, "voyage": "STU" }] }) self.assertEqual( { 'event_type': 'LOAD', 'location': 'DEF', 'voyage': 'STU', 'completion_time': 1526897537633 }, calculate_next_activity(input.last_event, input.itinerary))
def test_unknown(self): input = jso({ "last_event": { "location": "ABC", "voyage": "XYZ", "event_type": "RECEIVE" }, "itinerary": [] }) self.assertEqual('UNKNOWN', calculate_delivery_status(input.last_event, input.itinerary))
def test_load(self): input = jso({ "last_event": { "location": "ABC", "voyage": "XYZ", "event_type": "LOAD", "completion_time": 1526897537633 }, "itinerary": self.itinerary }) self.assertEqual('ON_SCHEDULE', calculate_delivery_status(input.last_event, input.itinerary))
def test_misdirected(self): input = jso({ "last_event": { "location": "DEF", "voyage": "XYZ", "event_type": "RECEIVE", "completion_time": 1526897537635 }, "itinerary": self.itinerary }) self.assertEqual('MISDIRECTED', calculate_delivery_status(input.last_event, input.itinerary))
def test_behind_schedule(self): input = jso({ "last_event": { "location": "ABC", "voyage": "XYZ", "event_type": "RECEIVE", "completion_time": 1526897537635 }, "itinerary": self.itinerary }) self.assertEqual('BEHIND_SCHEDULE', calculate_delivery_status(input.last_event, input.itinerary))
def test_claim(self): input = jso({ "last_event": { "location": "GHI", "voyage": "STU", "event_type": "CLAIM", "completion_time": 1526897537632 }, "itinerary": self.itinerary }) self.assertEqual('AHEAD_OF_SCHEDULE', calculate_delivery_status(input.last_event, input.itinerary))
def test_too_late(self): itinerary = jso([{ 'load': { 'location': 'ABC' } }, { 'unload': { 'location': 'DEF', 'time': 123456799 } }]) self.assertFalse( is_cargo_specification_satisfied(specification, itinerary))
def test_wrong_destination(self): itinerary = jso([{ 'load': { 'location': 'ABC' } }, { 'unload': { 'location': 'DDEF', 'time': 123456788 } }]) self.assertFalse( is_cargo_specification_satisfied(specification, itinerary))
def test_good(self): itinerary = jso([{ 'load': { 'location': 'ABC' } }, { 'unload': { 'location': 'DEF', 'time': 123456788 } }]) self.assertTrue( is_cargo_specification_satisfied(specification, itinerary))
def setUp(self): self.event = jso({ "lastEvent": { "location": "DEF", "voyageId": "XYZ", "eventType": "UNLOAD", "completionTime": 1526897537633, }, "itinerary": [{ "loadLocation": "ABC", "unloadLocation": "DEF", "unloadTime": 1526897537633, "voyageId": "XYZ" }, { "loadLocation": "DEF", "loadTime": 1526897537633, "voyageId": "STU" }] })
def test_receive(self): input = jso({ "last_event": { "location": "DEF", "event_type": "RECEIVE" }, "itinerary": [{ "load": { "location": "ABC", "time": 1526897537633 }, "voyage": "XYZ" }] }) self.assertEqual( { 'event_type': 'LOAD', 'location': 'ABC', 'voyage': 'XYZ', 'completion_time': 1526897537633 }, calculate_next_activity(input.last_event, input.itinerary))
def test_unload_claim(self): input = jso({ "last_event": { "location": "DEF", "voyage": "XYZ", "event_type": "UNLOAD" }, "itinerary": [{ "load": { "location": "ABC" }, "unload": { "location": "DEF", "time": 1526897537633 }, "voyage": "XYZ" }] }) self.assertEqual({ 'event_type': 'CLAIM', 'location': 'DEF' }, calculate_next_activity(input.last_event, input.itinerary))
def test(self): self.assertEqual('NOT_RECEIVED', calculate_transportation_status(jso({}))) self.assertEqual( 'UNKNOWN', calculate_transportation_status(jso({'event_type': 'KKK'}))) self.assertEqual( 'IN_PORT', calculate_transportation_status(jso({'event_type': 'RECEIVE'}))) self.assertEqual( 'ONBOARD_CARRIER', calculate_transportation_status(jso({'event_type': 'LOAD'}))) self.assertEqual( 'IN_PORT', calculate_transportation_status(jso({'event_type': 'UNLOAD'}))) self.assertEqual( 'IN_PORT', calculate_transportation_status(jso({'event_type': 'CUSTOMS'}))) self.assertEqual( 'CLAIMED', calculate_transportation_status(jso({'event_type': 'CLAIM'})))
def test(self): self.assertEqual('EVENT_TYPE_IS_MISSING', check_voyage(jso({}))) self.assertEqual('OK', check_voyage(jso({'event_type': 'RECEIVE'}))) self.assertEqual( 'UNEXPECTED_VOYAGE_REFERENCE', check_voyage(jso({ 'event_type': 'RECEIVE', 'voyage': 'XYZ' }))) self.assertEqual('VOYAGE_REF_IS_MISSING', check_voyage(jso({'event_type': 'LOAD'}))) self.assertEqual('VOYAGE_REF_IS_MISSING', check_voyage(jso({'event_type': 'UNLOAD'}))) self.assertEqual( 'OK', check_voyage(jso({ 'event_type': 'LOAD', 'voyage': 'XYZ' })))
from is_cargo_specification_satisfied import is_cargo_specification_satisfied import unittest from matte.jso import jso specification = jso({ 'origin': 'ABC', 'destination': 'DEF', 'arrival_dead_line': 123456789 }) class TestCargoSpecificationChecking(unittest.TestCase): def test_none(self): self.assertFalse(is_cargo_specification_satisfied(None, None)) self.assertFalse(is_cargo_specification_satisfied(specification, None)) self.assertFalse(is_cargo_specification_satisfied(specification, [])) def test_good(self): itinerary = jso([{ 'load': { 'location': 'ABC' } }, { 'unload': { 'location': 'DEF', 'time': 123456788 } }]) self.assertTrue( is_cargo_specification_satisfied(specification, itinerary))