public function testSubmitValidData() { $scale = new Scale(); $scale->setName('Scale 1'); $level = new Level(); $level->setName('Level 1'); $level->setValue(0); $level->setScale($scale); $parent = new Competency(); $parent->setName('Competency 1'); $parent->setScale($scale); $om = $this->client->getContainer()->get('claroline.persistence.object_manager'); $om->persist($scale); $om->persist($level); $om->persist($parent); $om->flush(); $formData = ['name' => 'Foo', 'level' => $level->getId(), 'minActivityCount' => 2]; $form = $this->factory->create(new AbilityType(), null, ['competency' => $parent]); $form->submit($formData); $this->assertTrue($form->isSynchronized()); $ability = $form->getData(); $this->assertInstanceOf('HeVinci\\CompetencyBundle\\Entity\\Ability', $ability); $this->assertEquals('Foo', $ability->getName()); $this->assertEquals($level, $ability->getLevel()); $this->assertEquals(2, $ability->getMinActivityCount()); $this->assertViewIsValid($form, $formData); }
public function testSubmitValidData() { $scale = new Scale(); $scale->setName('Scale 1'); $level = new Level(); $level->setName('Level 1'); $level->setValue(0); $level->setScale($scale); $parent = new Competency(); $parent->setName('Competency 1'); $parent->setScale($scale); $ability = new Ability(); $ability->setName('Foo'); $this->om->persist($scale); $this->om->persist($level); $this->om->persist($parent); $this->om->persist($ability); $this->om->flush(); $formData = ['ability' => 'Foo', 'level' => $level->getId()]; $form = $this->factory->create(new AbilityImportType($this->om), null, ['competency' => $parent]); $form->submit($formData); $this->assertTrue($form->isSynchronized()); $this->assertEquals($ability, $form->getData()); $this->assertEquals($level, $ability->getLevel()); $this->assertViewIsValid($form, $formData); }
private function walkJsonNodes(\stdClass $parentData, Competency $parentCompetency, Scale $scale) { if (isset($parentData->competencies)) { foreach ($parentData->competencies as $competency) { $newCompetency = new Competency(); $newCompetency->setName($competency->name); $newCompetency->setParent($parentCompetency, true); $this->walkJsonNodes($competency, $newCompetency, $scale); } } else { foreach ($parentData->abilities as $ability) { $newAbility = new Ability(); $newAbility->setName($ability->name); $level = null; foreach ($scale->getLevels() as $scaleLevel) { if ($scaleLevel->getName() === $ability->level) { $level = $scaleLevel; break; } } $link = new CompetencyAbility(); $link->setCompetency($parentCompetency); $link->setAbility($newAbility); $link->setLevel($level); } } return $parentCompetency; }
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)); }
public function testValidationFailure() { $parent = $this->mock('HeVinci\\CompetencyBundle\\Entity\\Competency'); $parent->expects($this->once())->method('getRoot')->willReturn(1); $competency = new Competency(); $competency->setName('CHILD'); $constraint = new UniqueCompetency(); $constraint->parentCompetency = $parent; $this->repo->expects($this->once())->method('findOneBy')->with(['name' => 'CHILD', 'root' => 1])->willReturn('MATCH'); $this->context->expects($this->once())->method('addViolationAt')->with('name', $constraint->message); $this->validator->validate($competency, $constraint); }
protected function persistCompetency($name, Competency $parent = null, Scale $scale = null) { $competency = new Competency(); $competency->setName($name); if ($parent) { $competency->setParent($parent); } if ($scale) { $competency->setScale($scale); } $this->om->persist($competency); return $competency; }