assertEquals('created', $orderContext->toString()); } public function testCanProceedToStateShipped() { $contextOrder = OrderContext::create(); $contextOrder->proceedToNext(); $this->assertEquals('shipped', $contextOrder->toString()); } public function testCanProceedToStateDone() { $contextOrder = OrderContext::create(); $contextOrder->proceedToNext(); $contextOrder->proceedToNext(); $this->assertEquals('done', $contextOrder->toString()); } public function testStateDoneIsTheLastPossibleState() { $contextOrder = OrderContext::create(); $contextOrder->proceedToNext(); $contextOrder->proceedToNext(); $contextOrder->proceedToNext(); $this->assertEquals('done', $contextOrder->toString()); } }