/** * {@inheritdoc} * * @param string $context * A context, explaining what kind of data this is. Possible contexts: * - EducaCurriculum::CURRICULUM_XML: Representation of the curriculum * structure, in XML. This information can be found on the official * lehrplan.ch website. */ public static function createFromData($data, $context = self::CURRICULUM_XML) { switch ($context) { case self::CURRICULUM_XML: $data = self::parseCurriculumXml($data); $curriculum = new LP21Curriculum($data->curriculum); $curriculum->setCurriculumDictionary($data->dictionary); return $curriculum; } // @codeCoverageIgnoreStart throw new CurriculumInvalidContextException(); // @codeCoverageIgnoreEnd }
/** * Test treating a taxonomy tree. */ public function testTaxonomyTreeHandling() { $trees = json_decode(file_get_contents(FIXTURES_DIR . '/curriculum-data/lp21_taxonomy_tree_obfuscated.json'), true); // Create a new curriculum element. $xml = file_get_contents(FIXTURES_DIR . '/curriculum-data/lp21_curriculum_obfuscated.xml'); $curriculum = LP21Curriculum::createFromData($xml, LP21Curriculum::CURRICULUM_XML); $curriculum->setTreeBasedOnTaxonTree($trees); // Load the expected competency ASCII tree. $expectedAsciiTree = file_get_contents(FIXTURES_DIR . '/curriculum-data/lp21_taxonomy_tree_obfuscated.ascii'); $this->assertEquals(trim($expectedAsciiTree), $curriculum->asciiDump(), "The ASCII representation of the competency curriculum tree, based on the taxonomy tree, is as expected."); }