public function testWriteRouteItem()
 {
     $doc = new XmlCompactDocument();
     $doc->load(self::samplesDir() . 'custom/runtime/itemsubset.xml');
     $seeker = new AssessmentTestSeeker($doc->getDocumentComponent(), array('assessmentItemRef', 'assessmentSection', 'testPart', 'outcomeDeclaration', 'responseDeclaration', 'branchRule', 'preCondition'));
     $stream = new MemoryStream();
     $stream->open();
     $access = new QtiBinaryStreamAccessFsFile($stream);
     // Get route item at index 2 which is the route item describing
     // item occurence 0 of Q03.
     $sessionManager = new SessionManager();
     $testSession = $sessionManager->createAssessmentTestSession($doc->getDocumentComponent());
     $routeItem = $testSession->getRoute()->getRouteItemAt(2);
     $access->writeRouteItem($seeker, $routeItem);
     $stream->rewind();
     $routeItem = $access->readRouteItem($seeker);
     $this->assertEquals('Q03', $routeItem->getAssessmentItemRef()->getIdentifier());
     $this->assertEquals('S01', $routeItem->getAssessmentSection()->getIdentifier());
     $this->assertEquals('P01', $routeItem->getTestPart()->getIdentifier());
     $this->assertInternalType('integer', $routeItem->getOccurence());
     $this->assertEquals(0, $routeItem->getOccurence());
     $this->assertEquals(0, count($routeItem->getBranchRules()));
     $this->assertEquals(0, count($routeItem->getPreConditions()));
 }