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