public function translatingIsDoneCorrectly()
{
$mockTranslationProvider = $this->createMock(XliffTranslationProvider::class);
$mockTranslationProvider->expects($this->once())->method('getTranslationByOriginalLabel')->with('Untranslated label', $this->defaultLocale, PluralsReader::RULE_ONE, 'source', 'packageKey')->will($this->returnValue('Translated label'));
$mockFormatResolver = $this->createMock(I18n\FormatResolver::class);
$mockFormatResolver->expects($this->once())->method('resolvePlaceholders')->with('Translated label', ['value1', 'value2'], $this->defaultLocale)->will($this->returnValue('Formatted and translated label'));
$mockPluralsReader = $this->createMock(PluralsReader::class);
$mockPluralsReader->expects($this->once())->method('getPluralForm')->with(1, $this->defaultLocale)->will($this->returnValue(PluralsReader::RULE_ONE));
$this->translator->injectPluralsReader($mockPluralsReader);
$this->translator->injectTranslationProvider($mockTranslationProvider);
$this->translator->injectFormatResolver($mockFormatResolver);
$result = $this->translator->translateByOriginalLabel('Untranslated label', ['value1', 'value2'], 1, null, 'source', 'packageKey');
$this->assertEquals('Formatted and translated label', $result);
}