public function testUpdateTranslationToken() { $token = new TranslationToken(); $token->setSource('test'); $token->setBundleName('test'); $token->setDomain('test'); $token->setTokenName('test'); self::$em->persist($token); self::$em->flush(); $data = array(array('en', 'test'), array('ru', 'тест')); foreach ($data as $trans) { $translation = $this->createLanguageTranslationToken($trans[0], $trans[1], $token); // postPersist $this->compareTranslationsData($token); $this->updateLanguageTranslationToken($translation); // postUpdate $this->compareTranslationsData($token); } }
/** * @param $source * @param $bundleName * @param $domain * @param $tokenName * * @return TranslationToken */ private function findOrCreateTranslationToken($source, $bundleName, $domain, $tokenName) { /* @var EntityManager $em */ $em = $this->getContainer()->get('doctrine.orm.entity_manager'); $token = $em->getRepository(TranslationToken::clazz())->findOneBy(array('source' => $source, 'bundleName' => $bundleName, 'domain' => $domain, 'tokenName' => $tokenName)); if (!$token) { $token = new TranslationToken(); $token->setSource($source); $token->setBundleName($bundleName); $token->setDomain($domain); $token->setTokenName($tokenName); $em->persist($token); $em->flush(); } return $token; }