/** * 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); }
/** * 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; }