Scheduler:
Should return non-null list of recommendation to the dispatcher UI (cab or time).
Picks a cab efficiently.
Gives results when no cabs are available.
Prioritize a reservation correctly which are taken at different times.
Mapper:
Pass in an address and make sure it returns a correct zone.
Make sure it handles a non-existent address.
Model:
Insert reservation and check, make sure it's evaluated by the scheduler and sent to the dispatcher.
Track cabs movement and change zones correctly.
Dispatcher:
Make sure that the UI allows you to enter information correctly.
Test a general interface command.
Cab Console:
Test to see if a payment fails.
Test to see if credit card fails.
Test a general interface command.
Data storage:
Test readability.
Test writability.
Test make sure data are not corrupted.
Cab I/O:
Simulate data going to and from cabs.
"Supervisor":
Test map editing ability: map is updated correctly.
Employee records are accessible and editable.
Reports can be generated and customized.
Credit card server:
Simulate cards being accepted and rejected.
Handle malformed credit card numbers.