public function testCreateFormExploded(XmlCompactDocument $compactDoc = null) { $doc = new XmlDocument('2.1'); $file = self::samplesDir() . 'custom/interaction_mix_saschen_assessmentsectionref/interaction_mix_sachsen.xml'; $doc->load($file); $compactDoc = XmlCompactDocument::createFromXmlAssessmentTestDocument($doc, new LocalFileResolver()); $this->assertInstanceOf('qtism\\data\\storage\\xml\\XmlCompactDocument', $compactDoc); $this->assertEquals('InteractionMixSachsen_1901710679', $compactDoc->getDocumentComponent()->getIdentifier()); $this->assertEquals('Interaction Mix (Sachsen)', $compactDoc->getDocumentComponent()->getTitle()); $outcomeDeclarations = $compactDoc->getDocumentComponent()->getOutcomeDeclarations(); $this->assertEquals(2, count($outcomeDeclarations)); $this->assertEquals('SCORE', $outcomeDeclarations['SCORE']->getIdentifier()); $testParts = $compactDoc->getDocumentComponent()->getTestParts(); $this->assertEquals(1, count($testParts)); $this->assertEquals('testpartID', $testParts['testpartID']->getIdentifier()); $this->assertEquals(NavigationMode::NONLINEAR, $testParts['testpartID']->getNavigationMode()); $assessmentSections1stLvl = $testParts['testpartID']->getAssessmentSections(); $this->assertEquals(1, count($assessmentSections1stLvl)); $this->assertEquals('Container_45665458', $assessmentSections1stLvl['Container_45665458']->getIdentifier()); $assessmentSections2ndLvl = $assessmentSections1stLvl['Container_45665458']->getSectionParts(); $this->assertEquals(1, count($assessmentSections2ndLvl)); $this->assertInstanceOf('qtism\\data\\ExtendedAssessmentSection', $assessmentSections2ndLvl['Sektion_181865064']); $this->assertEquals(0, count($assessmentSections2ndLvl['Sektion_181865064']->getRubricBlockRefs())); $this->assertEquals('Sektion_181865064', $assessmentSections2ndLvl['Sektion_181865064']->getIdentifier()); $assessmentItemRefs = $assessmentSections2ndLvl['Sektion_181865064']->getSectionParts(); $this->assertEquals(13, count($assessmentItemRefs)); // Pick up 4 for a test... $assessmentItemRef = $assessmentItemRefs['Hotspot_278940407']; $this->assertInstanceOf('qtism\\data\\ExtendedAssessmentItemRef', $assessmentItemRef); $this->assertEquals('Hotspot_278940407', $assessmentItemRef->getIdentifier()); $responseDeclarations = $assessmentItemRef->getResponseDeclarations(); $this->assertEquals(1, count($responseDeclarations)); $this->assertEquals('RESPONSE', $responseDeclarations['RESPONSE']->getIdentifier()); $outcomeDeclarations = $assessmentItemRef->getOutcomeDeclarations(); $this->assertEquals(5, count($outcomeDeclarations)); $this->assertEquals('FEEDBACKBASIC', $outcomeDeclarations['FEEDBACKBASIC']->getIdentifier()); $file = tempnam('/tmp', 'qsm'); $compactDoc->save($file); $this->assertTrue(file_exists($file)); $compactDoc = new XmlCompactDocument('1.0'); $compactDoc->load($file); $compactDoc->schemaValidate(); unlink($file); $this->assertFalse(file_exists($file)); }