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));
 }