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