Ejemplo n.º 1
0
 /**
  * Test to select the previous, the next state machines and similar  state machines work on indices
  *
  * @return void
  */
 public function testCanSelectNextOrPreviousOrRandomIndexState()
 {
     $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>");
     $this->assertEquals(0, $stateMachine->getFirstIndex());
     $this->assertEquals(2, $stateMachine->getLastIndex());
     $stateMachine->checkPoint(1);
     $this->assertEquals(false, $stateMachine->getState(0));
     $this->assertEquals(1, $stateMachine->getFirstIndex());
     $this->assertEquals(2, $stateMachine->getLastIndex());
     $this->assertEquals(false, $stateMachine->getState(3));
     $this->assertXmlStringEqualsXmlString("<?xml version=\"1.0\" encoding=\"utf-8\"?><listofitems><item id=\"1\" index=\"1\">First</item><item id=\"2\">Second</item></listofitems>", $stateMachine->getState(1));
     $this->assertXmlStringEqualsXmlString("<?xml version=\"1.0\" encoding=\"utf-8\"?><listofitems><item id=\"2\">second</item><item id=\"3\">Third</item></listofitems>", $stateMachine->getState(2));
     $stateMachine->addState("<?xml version=\"1.0\" encoding=\"utf-8\"?><listofitems><item id=\"4\">fourth</item></listofitems>");
     $this->assertEquals(1, $stateMachine->getFirstIndex());
     $this->assertXmlStringEqualsXmlString("<?xml version=\"1.0\" encoding=\"utf-8\"?><listofitems><item id=\"1\" index=\"1\">First</item><item id=\"2\">Second</item></listofitems>", $stateMachine->getState($stateMachine->getFirstIndex()));
     $this->assertEquals(3, $stateMachine->getLastIndex());
     $this->assertXmlStringEqualsXmlString("<?xml version=\"1.0\" encoding=\"utf-8\"?><listofitems><item id=\"4\">fourth</item></listofitems>", $stateMachine->getState($stateMachine->getLastIndex()));
 }