public function testLoad()
 {
     $locale = 'fr';
     $domain = 'test';
     $metadataCache = $this->getMockBuilder('Oro\\Bundle\\TranslationBundle\\Translation\\DynamicTranslationMetadataCache')->disableOriginalConstructor()->getMock();
     $resource = new OrmTranslationResource($locale, $metadataCache);
     $value1 = new Translation();
     $value1->setKey('label1');
     $value1->setScope(Translation::SCOPE_SYSTEM);
     $value1->setLocale($locale);
     $value1->setDomain($domain);
     $value1->setValue('value1 (SYSTEM_SCOPE)');
     $value2 = new Translation();
     $value2->setKey('label1');
     $value2->setScope(Translation::SCOPE_UI);
     $value2->setLocale($locale);
     $value2->setDomain($domain);
     $value2->setValue('value1 (UI_SCOPE)');
     $value3 = new Translation();
     $value3->setKey('label3');
     $value3->setScope(Translation::SCOPE_UI);
     $value3->setLocale($locale);
     $value3->setDomain($domain);
     $value3->setValue('value3');
     $values = [$value1, $value2, $value3];
     $translationTable = 'translation_table';
     $repo = $this->getMockBuilder('Oro\\Bundle\\TranslationBundle\\Entity\\Repository\\TranslationRepository')->disableOriginalConstructor()->getMock();
     $repo->expects($this->once())->method('findValues')->with($locale, $domain)->willReturn($values);
     $metadata = $this->getMockBuilder('Doctrine\\ORM\\Mapping\\ClassMetadata')->disableOriginalConstructor()->getMock();
     $metadata->expects($this->once())->method('getTableName')->willReturn($translationTable);
     $this->em->expects($this->once())->method('getClassMetadata')->with(Translation::ENTITY_NAME)->willReturn($metadata);
     $this->em->expects($this->once())->method('getRepository')->with(Translation::ENTITY_NAME)->willReturn($repo);
     $schemaManager = $this->getMockBuilder('Doctrine\\DBAL\\Schema\\AbstractSchemaManager')->disableOriginalConstructor()->setMethods(['tablesExist'])->getMockForAbstractClass();
     $this->connection->expects($this->once())->method('connect');
     $this->connection->expects($this->once())->method('getSchemaManager')->willReturn($schemaManager);
     $schemaManager->expects($this->once())->method('tablesExist')->with($translationTable)->willReturn(true);
     /** @var MessageCatalogue $result */
     $result = $this->loader->load($resource, $locale, $domain);
     $this->assertInstanceOf('Symfony\\Component\\Translation\\MessageCatalogue', $result);
     $this->assertEquals($locale, $result->getLocale());
     $this->assertEquals('value1 (UI_SCOPE)', $result->get('label1', $domain));
     $this->assertEquals('value3', $result->get('label3', $domain));
 }
Esempio n. 2
0
 /**
  * Find existing translation in database
  *
  * @param string $key
  * @param string $locale
  * @param string $domain
  * @param string $value
  *
  * @return Translation
  */
 private function getTranslationObject($key, $locale, $domain, $value)
 {
     $object = $this->repository->findValue($key, $locale, $domain);
     if (null === $object) {
         $object = new Translation();
         $object->setScope(Translation::SCOPE_SYSTEM);
         $object->setLocale($locale);
         $object->setDomain($domain);
         $object->setKey($key);
     }
     $object->setValue($value);
     return $object;
 }