public function testListFrameworksAsShortArrays() { $c1 = new Competency(); $c1->setName('Foo'); $c1->setDescription('Foo desc'); $c2 = new Competency(); $c2->setName('Bar'); $c2->setDescription('Bar desc'); $this->competencyRepo->expects($this->once())->method('findBy')->with(['parent' => null])->willReturn([$c1, $c2]); $expected = [['id' => null, 'name' => 'Foo', 'description' => 'Foo desc'], ['id' => null, 'name' => 'Bar', 'description' => 'Bar desc']]; $this->assertEquals($expected, $this->manager->listFrameworks(true)); }
/** * Converts a JSON representation of a competency framework * into an entity graph (without persisting it). * * @param string $jsonFramework * @return Competency */ public function convertToEntity($jsonFramework) { $frameworkData = json_decode($jsonFramework); $scaleRepo = $this->om->getRepository('HeVinciCompetencyBundle:Scale'); if (!($scale = $scaleRepo->findOneBy(['name' => $frameworkData->scale->name]))) { $scale = new Scale(); $scale->setName($frameworkData->scale->name); for ($i = 0, $levels = $frameworkData->scale->levels, $max = count($levels); $i < $max; ++$i) { $level = new Level(); $level->setName($levels[$i]); $level->setValue($i); $level->setScale($scale); $scale->addLevel($level); } } $framework = new Competency(); $framework->setName($frameworkData->name); $framework->setDescription($frameworkData->description); $framework->setScale($scale); return $this->walkJsonNodes($frameworkData, $framework, $scale); }