/**
  * @test
  */
 public function translateOptionsAreObserved()
 {
     $this->arguments['translate'] = array('by' => 'id', 'using' => 'label', 'locale' => 'dk', 'source' => 'WeirdMessageCatalog', 'package' => 'Foo.Bar', 'prefix' => 'somePrefix.');
     $this->injectDependenciesIntoViewHelper($this->viewHelper);
     $mockTranslator = $this->getMock('TYPO3\\Flow\\I18n\\Translator');
     $mockTranslator->expects($this->once())->method('translateById')->with('somePrefix.label1', array(), NULL, new \TYPO3\Flow\I18n\Locale('dk'), 'WeirdMessageCatalog', 'Foo.Bar');
     $this->viewHelper->_set('translator', $mockTranslator);
     $this->viewHelper->_call('getTranslatedLabel', 'value1', 'label1');
 }
 /**
  * @test
  * @dataProvider getTranslatedLabelDataProvider
  * @param string $by
  * @param string $using
  * @param string $translatedId
  * @param string $translatedLabel
  * @param string $expectedResult
  */
 public function getTranslatedLabelTests($by, $using, $translatedId, $translatedLabel, $expectedResult)
 {
     $this->arguments['translate'] = ['by' => $by, 'using' => $using, 'prefix' => 'somePrefix.'];
     $this->injectDependenciesIntoViewHelper($this->viewHelper);
     $mockTranslator = $this->createMock(\TYPO3\Flow\I18n\Translator::class);
     if ($by === 'label') {
         $mockTranslator->expects($this->once())->method('translateByOriginalLabel')->will($this->returnCallback(function ($label) use($translatedLabel) {
             return $translatedLabel !== null ? $translatedLabel : $label;
         }));
     } else {
         $mockTranslator->expects($this->once())->method('translateById')->will($this->returnValue($translatedId));
     }
     $this->inject($this->viewHelper, 'translator', $mockTranslator);
     $actualResult = $this->viewHelper->_call('getTranslatedLabel', 'someValue', 'Some label');
     $this->assertSame($expectedResult, $actualResult);
 }