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();
     }
 }