Please note that plural forms for particular translation unit are accessed with integer index (and not string like 'zero', 'one', 'many' etc). This is because they are indexed such way in XLIFF files in order to not break tools' support. There are very few XLIFF editors, but they are nice Gettext's .po editors available. Gettext supports plural forms, but it indexes them using integer numbers. Leaving it this way in .xlf files, makes it possible to easily convert them to .po (e.g. using xliff2po from Translation Toolkit), edit with Poedit, and convert back to .xlf without any information loss (using po2xliff).
See also: http://docs.oasis-open.org/xliff/v1.2/xliff-profile-po/xliff-profile-po-1.2-cd02.html#s.detailed_mapping.tu
 /**
  * @test
  */
 public function getTargetBySourceLogsSilentlyIfNoTransUnitsArePresent()
 {
     $this->mockXliffParser = $this->createMock(I18n\Xliff\XliffParser::class);
     $this->mockXliffParser->expects($this->once())->method('getParsedData')->will($this->returnValue([]));
     $mockLogger = $this->getMockBuilder(LoggerInterface::class)->disableOriginalConstructor()->getMock();
     $mockLogger->expects($this->once())->method('log')->with($this->stringStartsWith('No trans-unit elements were found'), LOG_DEBUG);
     $this->model->injectParser($this->mockXliffParser);
     $this->inject($this->model, 'i18nLogger', $mockLogger);
     $this->model->initializeObject();
     $this->model->getTargetBySource('foo');
 }