public function testRefresh() { $code = new SubjectFaculty(); $code->setCode('BIOL'); $code->setCampus('UBC'); $code->setDepartment('SCIE'); $code->setFaculty('ARTS'); $code->setUrn('urn:ubc:subjectCode:BIOL~UBC'); $code->setTitle('biology'); $this->getRepository()->refresh(array($code)); $codes = $this->getRepository()->findAll(); $this->assertEquals(1, count($codes), 'should purge old data and load the new ones'); }
/** * Load data fixtures with the passed EntityManager * * @param ObjectManager $manager */ function load(ObjectManager $manager) { $code = new SubjectFaculty(); $code->setCode('CHIN'); $code->setCampus('UBC'); $code->setDepartment('ASIA'); $code->setFaculty('ARTS'); $code->setUrn('urn:ubc:subjectCode:CHIN~UBC'); $code->setTitle('Chinese'); $manager->persist($code); $code = new SubjectFaculty(); $code->setCode('JAPN'); $code->setCampus('UBC'); $code->setDepartment('ASIA'); $code->setFaculty('ARTS'); $code->setUrn('urn:ubc:subjectCode:JAPN~UBC'); $code->setTitle('Japanese'); $manager->persist($code); $manager->flush(); }
protected function execute(InputInterface $input, OutputInterface $output) { if ($input->getOption('local')) { list($subjectCodes, $departmentCodes) = $this->refreshFromLocal($output); } else { list($subjectCodes, $departmentCodes) = $this->refreshFromSIS($output); } $output->writeln('Merging codes...'); // convert department code array to an associate array for searching by code $departmentCodeArray = array(); foreach ($departmentCodes->codes as $code) { $departmentCodeArray[$code->getCode()] = $code; } $entities = array(); foreach ($subjectCodes->codes as $code) { $scode = new SubjectFaculty(); $scode->setUrn($code->getId()); //$scode->setCode($code->getCode()); // temp fix as sis api missing code value for subject_code API $c = explode(':', $code->getId()); $c = explode('~', $c[3]); $scode->setCode($c[0]); $scode->setCampus($code->getAdminCampusCode()); $scode->setDepartment($code->getDepartmentCode()); $scode->setTitle($code->getFullDescription()); $deptCode = $code->getDepartmentCode(); if (!empty($deptCode) && array_key_exists($deptCode, $departmentCodeArray)) { $departmentCode = $departmentCodeArray[$deptCode]; $scode->setFaculty($departmentCode->getAdminFacultyCode()); } $entities[] = $scode; } $output->writeln('Persisting into database...'); $em = $this->getContainer()->get('doctrine')->getManager(); $em->getRepository('UBCExamMainBundle:SubjectFaculty')->refresh($entities); $output->writeln('Done! Loaded ' . count($entities) . ' subject codes.'); }