public function testNotBlankValidation() { $notBlank = array('name', 'level'); $this->validateNotBlanks($notBlank); $this->object->setName('50 char max name test'); $this->object->setLevel(4); $this->validate(0); }
public function load(ObjectManager $manager) { $data = $this->container->get('ilioscore.dataloader.curriculumInventoryAcademicLevel')->getAll(); foreach ($data as $arr) { $entity = new CurriculumInventoryAcademicLevel(); $entity->setId($arr['id']); $entity->setName($arr['name']); $entity->setLevel($arr['level']); $entity->setReport($this->getReference('curriculumInventoryReports' . $arr['report'])); $entity->setDescription($arr['description']); $manager->persist($entity); $this->addReference('curriculumInventoryAcademicLevels' . $arr['id'], $entity); } $manager->flush(); }
/** * Create a CurriculumInventoryReport and its associated Academic Levels and Sequence. * * @ApiDoc( * section = "CurriculumInventoryReport", * description = "Create a CurriculumInventoryReport and its associated Academic Levels and Sequence.", * resource = true, * input="Ilios\CoreBundle\Form\Type\CurriculumInventoryReportType", * output="Ilios\CoreBundle\Classes\CurriculumInventoryReportDecorator", * statusCodes={ * 201 = "Created CurriculumInventoryReport.", * 400 = "Bad Request.", * 404 = "Not Found." * } * ) * * @Rest\View(statusCode=201, serializerEnableMaxDepthChecks=true) * * @param Request $request * * @return Response */ public function postAction(Request $request) { try { $handler = $this->container->get('ilioscore.curriculuminventoryreport.handler'); /* @var CurriculumInventoryReportInterface $curriculumInventoryReport */ $curriculumInventoryReport = $handler->post($this->getPostData($request)); $authChecker = $this->get('security.authorization_checker'); if (!$authChecker->isGranted('create', $curriculumInventoryReport)) { throw $this->createAccessDeniedException('Unauthorized access!'); } $manager = $this->container->get('ilioscore.curriculuminventoryreport.manager'); $levelManager = $this->container->get('ilioscore.curriculuminventoryacademiclevel.manager'); $sequenceManager = $this->container->get('ilioscore.curriculuminventorysequence.manager'); $manager->update($curriculumInventoryReport, false, false); // create academic years and sequence while at it. for ($i = 1, $n = 10; $i <= $n; $i++) { $level = new CurriculumInventoryAcademicLevel(); $level->setLevel($i); $level->setName('Year ' . $i); // @todo i18n 'Year'. [ST 2016/06/02] $curriculumInventoryReport->addAcademicLevel($level); $level->setReport($curriculumInventoryReport); $levelManager->update($level, false, false); } $sequence = new CurriculumInventorySequence(); $curriculumInventoryReport->setSequence($sequence); $sequence->setReport($curriculumInventoryReport); $sequenceManager->update($sequence, true, false); // flush here. // generate token after the fact, since it needs to include the report id. $curriculumInventoryReport->generateToken(); $manager->update($curriculumInventoryReport, true, true); $factory = $this->get('ilioscore.curriculum_inventory_report_decorator.factory'); $answer['curriculumInventoryReports'] = [$factory->create($curriculumInventoryReport)]; $view = $this->view($answer, Codes::HTTP_CREATED); return $this->handleView($view); } catch (InvalidFormException $exception) { return $exception->getForm(); } }