예제 #1
0
 /**
  * Test of the scan public method
  */
 public function testScan()
 {
     // Test data
     $trans1 = new Translations();
     $trans1->addTranslation('bundle#1', 'domain#1', 'locale#1', 'resource#1', 'translation#1');
     $trans2 = new Translations();
     $trans2->addTranslation('bundle#2', 'domain#2', 'locale#2', 'resource#2', 'translation#2');
     $expected = new Translations();
     $expected->merge($trans1);
     $expected->merge($trans2);
     // Configure the test
     $scanner = $this->getMockBuilder('Davamigo\\TranslatorBundle\\Model\\Translator\\Scanner')->setConstructorArgs(array($this->kernelMock))->setMethods(array('scanBundle'))->getMock();
     $scanner->expects($this->any())->method('scanBundle')->will($this->onConsecutiveCallsArray(array($trans1, $trans2)));
     // Run the test
     /** @var Scanner $scanner */
     $result = $scanner->scan();
     // Assertions
     $this->assertEquals($expected, $result);
 }
예제 #2
0
 /**
  * Scan for all the translations in a bundle
  *
  * @param string $bundleName
  * @param string $bundlePath
  * @return Translations
  */
 protected function scanBundle($bundleName, $bundlePath)
 {
     $translations = new Translations();
     $resourcesFolder = $this->realPath($bundlePath . static::TRANSLATION_RESOURCE_FOLDER);
     if ($this->isDir($resourcesFolder)) {
         $dir = $this->scanDir($resourcesFolder);
         foreach ($dir as $fileName) {
             $filePath = $this->realPath($resourcesFolder . '/' . $fileName);
             if ($filePath && $this->isFile($filePath)) {
                 $translations->merge($this->scanFile($bundleName, $resourcesFolder, $fileName));
             }
         }
     }
     return $translations;
 }