/**
  * @param array $options
  * @param array $phpFiles
  * @param array $jsFiles
  * @param array $phpMap
  * @param array $jsMap
  * @paran array $phraseFactoryMap
  * @param array $expectedResult
  * @dataProvider addPhraseDataProvider
  */
 public function testAddPhrase($options, $phpFiles, $jsFiles, $phpMap, $jsMap, $phraseFactoryMap, $expectedResult)
 {
     // 1. Create mocks
     $phpAdapter = new AdapterStub();
     $jsAdapter = new AdapterStub();
     // 2. Set mocks
     $this->parser->addAdapter('php', $phpAdapter);
     $this->parser->addAdapter('js', $jsAdapter);
     //3. Set fixtures
     $phpAdapter->setValueMap($phpMap);
     $jsAdapter->setValueMap($jsMap);
     $this->factory->expects($this->any())->method('createPhrase')->with()->willReturnMap($phraseFactoryMap);
     //4. Set expectations
     $this->filesCollector->expects($this->any())->method('getFiles')->will($this->returnValueMap([[$options[0]['paths'], '', $phpFiles], [$options[1]['paths'], '', $jsFiles]]));
     $result = $this->parser->parse($options);
     $this->assertEquals($expectedResult, $result);
 }
 /**
  * Parser construct
  *
  * @param I18n\FilesCollector $filesCollector
  * @param I18n\Factory $factory
  * @param I18n\Context $context
  */
 public function __construct(I18n\FilesCollector $filesCollector, I18n\Factory $factory, I18n\Context $context)
 {
     $this->_context = $context;
     parent::__construct($filesCollector, $factory);
 }
 public function getPhrases()
 {
     $this->assertInternalType('array', $this->_parserMock->getPhrases());
 }