public function testObjectState() { $originator = new Originator(); $foo = new \stdClass(); $foo->data = "foo"; $originator->setState($foo); $this->assertAttributeEquals($foo, "state", $originator); $savedState = $originator->saveToMemento(); $this->assertAttributeEquals($foo, "state", $savedState); $bar = new \stdClass(); $bar->data = "bar"; $originator->setState($bar); $this->assertAttributeEquals($bar, "state", $originator); $originator->restoreFromMemento($savedState); $this->assertAttributeEquals($foo, "state", $originator); $foo->data = null; $this->assertAttributeNotEquals($foo, "state", $savedState); $this->assertAttributeNotEquals($foo, "state", $originator); }
public function testStateWithDifferentObjects() { $originator = new Originator(); $first = new \stdClass(); $first->data = "foo"; $originator->setState($first); $this->assertAttributeEquals($first, "state", $originator); $first_snapshot = $originator->getStateAsMemento(); $this->assertAttributeEquals($first, "state", $first_snapshot); $second = new \stdClass(); $second->data = "bar"; $originator->setState($second); $this->assertAttributeEquals($second, "state", $originator); $originator->restoreFromMemento($first_snapshot); $this->assertAttributeEquals($first, "state", $originator); }