EARS: When an event happens to a service, the system shall move its delivery status only along the moves in the delivery status table.
Story: As an airline, I want a service's delivery status to change only along the moves the standard describes, so that a service is delivered only once it is paid for and each status means the same to every party.
Acceptance criteria:
-
ONE-101.1: When the airline confirms a REQUESTED service, the system shall mark it CONFIRMED.
-
ONE-101.2: When payment for a CONFIRMED service succeeds, the system shall mark it READY TO PROCEED.
-
ONE-101.3: When a service that is READY TO PROCEED, READY TO DELIVER or IN PROGRESS is delivered, the system shall mark it DELIVERED.
-
ONE-101.4: If payment for a service has not succeeded, then the system shall keep it out of READY TO PROCEED, READY TO DELIVER, IN PROGRESS and DELIVERED.
-
ONE-101.6: If an event has no move from the service's delivery status in the table, then the system shall refuse it.
The table, read from the status definitions, the ORDSTS guidance and the worked
examples: REQUESTED goes to CONFIRMED; CONFIRMED goes to READY TO PROCEED on
payment; READY TO PROCEED goes to READY TO DELIVER, IN PROGRESS or DELIVERED;
READY TO DELIVER goes to IN PROGRESS or DELIVERED; IN PROGRESS goes to
DELIVERED. The ways a service ends without delivery are in
endService, and suspension is in step. Delivery from CONFIRMED
and the return from UNABLE TO DELIVER to READY TO PROCEED are left to the
reading. The result is the new status, or none when the event is
refused.