コード例 #1
0
 /**
  * Test for to set check point and forget all previous state of state machine
  *
  * @return void
  */
 public function testShouldBeAbleToSetCheckpointAndForgetAllPreviousStatesOfAMachine()
 {
     $stateMachine = new StateMachine();
     $stateMachine->addState("<?xml version=\"1.0\" encoding=\"utf-8\"?><listofitems><item id=\"1\" index=\"1\">First</item><item id=\"2\">Second</item></listofitems>");
     $stateMachine->addState("<?xml version=\"1.0\" encoding=\"utf-8\"?><listofitems><item id=\"2\">second</item><item id=\"3\">Third</item></listofitems>");
     $stateMachine->addState("<?xml version=\"1.0\" encoding=\"utf-8\"?><listofitems><item id=\"1\" index=\"1\">First</item><item id=\"2\">Second</item></listofitems>");
     $stateMachine->addState("<?xml version=\"1.0\" encoding=\"utf-8\"?><listofitems><item id=\"4\">Fourth</item></listofitems>");
     $stateMachine->addState("<?xml version=\"1.0\" encoding=\"utf-8\"?><listofitems><item id=\"2\">second</item><item id=\"3\">Third</item></listofitems>");
     $this->assertXmlStringEqualsXmlString("<?xml version=\"1.0\" encoding=\"utf-8\"?><listofitems><item id=\"2\">second</item><item id=\"3\">Third</item></listofitems>", $stateMachine->getCurrentState());
     $stateMachine->checkPoint(2);
     $this->assertXmlStringEqualsXmlString("<?xml version=\"1.0\" encoding=\"utf-8\"?><listofitems><item id=\"2\">second</item><item id=\"3\">Third</item></listofitems>", $stateMachine->getState($stateMachine->getFirstIndex()));
     $stateMachine->checkPoint(4);
     $this->assertXmlStringEqualsXmlString("<?xml version=\"1.0\" ?><listofitems><item id=\"4\">Fourth</item></listofitems>", $stateMachine->getState($stateMachine->getFirstIndex()));
 }