State pattern is maintainable

state pattern change readme.rst
This commit is contained in:
ko22009
2017-04-27 09:13:45 +05:00
parent bdf8c494f0
commit ad163dc353
10 changed files with 569 additions and 397 deletions

View File

@@ -2,33 +2,30 @@
namespace DesignPatterns\Behavioral\State\Tests;
use DesignPatterns\Behavioral\State\OrderRepository;
use DesignPatterns\Behavioral\State\ContextOrder;
use DesignPatterns\Behavioral\State\CreateOrder;
use PHPUnit\Framework\TestCase;
class StateTest extends TestCase
{
public function testCanShipCreatedOrder()
{
$order = (new OrderRepository())->findById(1);
$order->shipOrder();
$order = new CreateOrder();
$contextOrder = new ContextOrder();
$contextOrder->setState($order);
$contextOrder->done();
$this->assertEquals('shipping', $order->getStatus());
$this->assertEquals('shipping', $contextOrder->getStatus());
}
public function testCanCompleteShippedOrder()
{
$order = (new OrderRepository())->findById(2);
$order->completeOrder();
$order = new CreateOrder();
$contextOrder = new ContextOrder();
$contextOrder->setState($order);
$contextOrder->done();
$contextOrder->done();
$this->assertEquals('completed', $order->getStatus());
}
/**
* @expectedException \Exception
*/
public function testThrowsExceptionWhenTryingToCompleteCreatedOrder()
{
$order = (new OrderRepository())->findById(1);
$order->completeOrder();
$this->assertEquals('completed', $contextOrder->getStatus());
}
}