public function testMemento() { $originator = new Originator(); $originator->setState("On"); $this->assertEquals("On", $originator->getState()); $memento = $originator->createMemento(); $this->assertInstanceOf('Behavioral\\Memento\\Memento', $memento); $caretaker = new Caretaker(); $caretaker->setMemento($memento); $originator->setState('Off'); $this->assertEquals("Off", $originator->getState()); $memento = $caretaker->getMemento(); $this->assertInstanceOf('Behavioral\\Memento\\Memento', $memento); $originator->restore($memento); $this->assertEquals("On", $originator->getState()); }