/** * @param array $users * @param string $mode * @return \Orm\Entity\OptIn */ public function create(array $users, $mode) { $entityManager = $this->getEntityManager(); $entityManager->beginTransaction(); $optins = array(); foreach ($users as $user) { $optin = new OptIn(); $optin->setUser($user); $optin->setUserid($user->getId()); $optin->setTimestamp(new \DateTime()); $optin->setMode($mode); $optin->setCode(OptinCode::generate()); try { $entityManager->persist($optin); $entityManager->flush(); } catch (Exception $e) { $entityManager->rollback(); throw new CmsException(1004, __METHOD__, __LINE__, null, $e); } $optins[] = $optin; } $entityManager->commit(); return $optins; }
/** * @test * @group library */ public function configuredCodeLengthIsUsedWhenConfigured() { $configuredCodeLength = Registry::getConfig()->optin->code->length; $this->assertEquals($configuredCodeLength, strlen(OptinCodeGenerator::generate())); }