├── .codeclimate.yml ├── .gitignore ├── .travis.yml ├── LICENSE ├── changelog.md ├── composer.json ├── infection.json.dist ├── phpunit.xml.dist ├── psalm.xml ├── readme.md ├── src ├── Arrow.php ├── DrawnArrow.php ├── Event.php ├── Events.php ├── Exception │ ├── DuplicateEvent.php │ ├── DuplicateState.php │ ├── IncompleteArrow.php │ └── MissingState.php ├── FSM.php ├── Graph.php ├── Name │ ├── EventName.php │ ├── NamedEvent.php │ ├── NamedState.php │ └── StateName.php ├── State.php ├── Transition.php └── TransitionOp.php └── tests └── unit ├── ArrowTest.php ├── DrawnArrowTest.php ├── EventsTest.php ├── FSMTest.php ├── Fixture ├── NoopTransition.php ├── TestEvent1.php ├── TestEvent2.php ├── TestGraph.php ├── TestState1.php ├── TestState2.php ├── TestTransition12.php └── TestTransition21.php ├── GraphTest.php ├── Name ├── EventNameTest.php └── StateNameTest.php ├── ShoppingCart ├── Fixture │ ├── Card.php │ ├── Event │ │ ├── Cancel.php │ │ ├── Checkout.php │ │ ├── Confirm.php │ │ ├── PlaceOrder.php │ │ ├── Select.php │ │ └── SelectCard.php │ ├── Item.php │ ├── Items.php │ ├── State │ │ ├── CardConfirmed.php │ │ ├── CardSelected.php │ │ ├── HasItems.php │ │ ├── NoCard.php │ │ ├── NoItems.php │ │ └── OrderPlaced.php │ └── Transition │ │ ├── AddFirstItem.php │ │ ├── AddItem.php │ │ ├── ConfirmCard.php │ │ ├── DoCancel.php │ │ ├── DoCheckout.php │ │ ├── DoPlaceOrder.php │ │ └── DoSelectCard.php └── ShoppingCartTest.php └── TransitionOpTest.php /.codeclimate.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/.codeclimate.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/.gitignore -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/.travis.yml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/LICENSE -------------------------------------------------------------------------------- /changelog.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/changelog.md -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/composer.json -------------------------------------------------------------------------------- /infection.json.dist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/infection.json.dist -------------------------------------------------------------------------------- /phpunit.xml.dist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/phpunit.xml.dist -------------------------------------------------------------------------------- /psalm.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/psalm.xml -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/readme.md -------------------------------------------------------------------------------- /src/Arrow.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/src/Arrow.php -------------------------------------------------------------------------------- /src/DrawnArrow.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/src/DrawnArrow.php -------------------------------------------------------------------------------- /src/Event.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/src/Event.php -------------------------------------------------------------------------------- /src/Events.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/src/Events.php -------------------------------------------------------------------------------- /src/Exception/DuplicateEvent.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/src/Exception/DuplicateEvent.php -------------------------------------------------------------------------------- /src/Exception/DuplicateState.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/src/Exception/DuplicateState.php -------------------------------------------------------------------------------- /src/Exception/IncompleteArrow.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/src/Exception/IncompleteArrow.php -------------------------------------------------------------------------------- /src/Exception/MissingState.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/src/Exception/MissingState.php -------------------------------------------------------------------------------- /src/FSM.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/src/FSM.php -------------------------------------------------------------------------------- /src/Graph.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/src/Graph.php -------------------------------------------------------------------------------- /src/Name/EventName.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/src/Name/EventName.php -------------------------------------------------------------------------------- /src/Name/NamedEvent.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/src/Name/NamedEvent.php -------------------------------------------------------------------------------- /src/Name/NamedState.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/src/Name/NamedState.php -------------------------------------------------------------------------------- /src/Name/StateName.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/src/Name/StateName.php -------------------------------------------------------------------------------- /src/State.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/src/State.php -------------------------------------------------------------------------------- /src/Transition.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/src/Transition.php -------------------------------------------------------------------------------- /src/TransitionOp.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/src/TransitionOp.php -------------------------------------------------------------------------------- /tests/unit/ArrowTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/ArrowTest.php -------------------------------------------------------------------------------- /tests/unit/DrawnArrowTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/DrawnArrowTest.php -------------------------------------------------------------------------------- /tests/unit/EventsTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/EventsTest.php -------------------------------------------------------------------------------- /tests/unit/FSMTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/FSMTest.php -------------------------------------------------------------------------------- /tests/unit/Fixture/NoopTransition.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/Fixture/NoopTransition.php -------------------------------------------------------------------------------- /tests/unit/Fixture/TestEvent1.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/Fixture/TestEvent1.php -------------------------------------------------------------------------------- /tests/unit/Fixture/TestEvent2.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/Fixture/TestEvent2.php -------------------------------------------------------------------------------- /tests/unit/Fixture/TestGraph.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/Fixture/TestGraph.php -------------------------------------------------------------------------------- /tests/unit/Fixture/TestState1.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/Fixture/TestState1.php -------------------------------------------------------------------------------- /tests/unit/Fixture/TestState2.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/Fixture/TestState2.php -------------------------------------------------------------------------------- /tests/unit/Fixture/TestTransition12.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/Fixture/TestTransition12.php -------------------------------------------------------------------------------- /tests/unit/Fixture/TestTransition21.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/Fixture/TestTransition21.php -------------------------------------------------------------------------------- /tests/unit/GraphTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/GraphTest.php -------------------------------------------------------------------------------- /tests/unit/Name/EventNameTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/Name/EventNameTest.php -------------------------------------------------------------------------------- /tests/unit/Name/StateNameTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/Name/StateNameTest.php -------------------------------------------------------------------------------- /tests/unit/ShoppingCart/Fixture/Card.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/ShoppingCart/Fixture/Card.php -------------------------------------------------------------------------------- /tests/unit/ShoppingCart/Fixture/Event/Cancel.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/ShoppingCart/Fixture/Event/Cancel.php -------------------------------------------------------------------------------- /tests/unit/ShoppingCart/Fixture/Event/Checkout.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/ShoppingCart/Fixture/Event/Checkout.php -------------------------------------------------------------------------------- /tests/unit/ShoppingCart/Fixture/Event/Confirm.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/ShoppingCart/Fixture/Event/Confirm.php -------------------------------------------------------------------------------- /tests/unit/ShoppingCart/Fixture/Event/PlaceOrder.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/ShoppingCart/Fixture/Event/PlaceOrder.php -------------------------------------------------------------------------------- /tests/unit/ShoppingCart/Fixture/Event/Select.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/ShoppingCart/Fixture/Event/Select.php -------------------------------------------------------------------------------- /tests/unit/ShoppingCart/Fixture/Event/SelectCard.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/ShoppingCart/Fixture/Event/SelectCard.php -------------------------------------------------------------------------------- /tests/unit/ShoppingCart/Fixture/Item.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/ShoppingCart/Fixture/Item.php -------------------------------------------------------------------------------- /tests/unit/ShoppingCart/Fixture/Items.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/ShoppingCart/Fixture/Items.php -------------------------------------------------------------------------------- /tests/unit/ShoppingCart/Fixture/State/CardConfirmed.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/ShoppingCart/Fixture/State/CardConfirmed.php -------------------------------------------------------------------------------- /tests/unit/ShoppingCart/Fixture/State/CardSelected.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/ShoppingCart/Fixture/State/CardSelected.php -------------------------------------------------------------------------------- /tests/unit/ShoppingCart/Fixture/State/HasItems.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/ShoppingCart/Fixture/State/HasItems.php -------------------------------------------------------------------------------- /tests/unit/ShoppingCart/Fixture/State/NoCard.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/ShoppingCart/Fixture/State/NoCard.php -------------------------------------------------------------------------------- /tests/unit/ShoppingCart/Fixture/State/NoItems.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/ShoppingCart/Fixture/State/NoItems.php -------------------------------------------------------------------------------- /tests/unit/ShoppingCart/Fixture/State/OrderPlaced.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/ShoppingCart/Fixture/State/OrderPlaced.php -------------------------------------------------------------------------------- /tests/unit/ShoppingCart/Fixture/Transition/AddFirstItem.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/ShoppingCart/Fixture/Transition/AddFirstItem.php -------------------------------------------------------------------------------- /tests/unit/ShoppingCart/Fixture/Transition/AddItem.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/ShoppingCart/Fixture/Transition/AddItem.php -------------------------------------------------------------------------------- /tests/unit/ShoppingCart/Fixture/Transition/ConfirmCard.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/ShoppingCart/Fixture/Transition/ConfirmCard.php -------------------------------------------------------------------------------- /tests/unit/ShoppingCart/Fixture/Transition/DoCancel.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/ShoppingCart/Fixture/Transition/DoCancel.php -------------------------------------------------------------------------------- /tests/unit/ShoppingCart/Fixture/Transition/DoCheckout.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/ShoppingCart/Fixture/Transition/DoCheckout.php -------------------------------------------------------------------------------- /tests/unit/ShoppingCart/Fixture/Transition/DoPlaceOrder.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/ShoppingCart/Fixture/Transition/DoPlaceOrder.php -------------------------------------------------------------------------------- /tests/unit/ShoppingCart/Fixture/Transition/DoSelectCard.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/ShoppingCart/Fixture/Transition/DoSelectCard.php -------------------------------------------------------------------------------- /tests/unit/ShoppingCart/ShoppingCartTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/ShoppingCart/ShoppingCartTest.php -------------------------------------------------------------------------------- /tests/unit/TransitionOpTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pwm/s-flow/HEAD/tests/unit/TransitionOpTest.php --------------------------------------------------------------------------------