/** * {@inheritdoc} * * @param string $context * A context, explaining what kind of data this is. Possible contexts: * - PerCurriculum::CURRICULUM_API: This means the $data param will be * treated as a URL to the official BDPER API endpoint. */ public static function createFromData($data, $context = self::CURRICULUM_API) { switch ($context) { case self::CURRICULUM_API: $data = self::fetchCurriculumData($data); $curriculum = new PerCurriculum($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/per_taxonomy_tree.json'), true); // Create a new curriculum element. $curriculum = PerCurriculum::createFromData(FIXTURES_DIR . '/curriculum-data/per-api', PerCurriculum::CURRICULUM_API); $curriculum->setTreeBasedOnTaxonTree($trees); // Load the expected competency ASCII tree. $expectedAsciiTree = file_get_contents(FIXTURES_DIR . '/curriculum-data/per_taxonomy_path.competency.ascii'); $this->assertEquals(trim($expectedAsciiTree), $curriculum->asciiDump(), "The ASCII representation of the competency curriculum tree, based on the taxonomy tree, is as expected."); }