@Test
public void testExportXls() throws URISyntaxException, IOException {

  // - preparation
  //FIXME: Should these resources lie below de.poiu.kilt.internal?
  //       Or even below de.poiu.kilt.internal.XlsImExporterTest?
  final Path propertiesRootDirectory= Paths.get(Resources.getResource("").toURI());
  final Set<File> resourceBundleFiles= ImmutableSet.of(
    propertiesRootDirectory.resolve("i18n/messages.properties").toFile(),
    propertiesRootDirectory.resolve("i18n/messages_de.properties").toFile());
  final FileMatcher fileMatcher= this.createFileMatcher(propertiesRootDirectory, resourceBundleFiles);
  final File xlsFile= this.tmpFolder.newFile("i18n.xlsx");
  xlsFile.delete();
  // - test
  XlsImExporter.exportXls(fileMatcher, UTF_8, xlsFile);
  // - verification
  final XlsFile readXlsFile= new XlsFile(xlsFile);
  final Map<I18nBundleKey, Collection<Translation>> readContent= readXlsFile.getContent();
  final XlsFile expectedXlsFile= new XlsFile(new File(Resources.getResource("i18n_expected.xlsx").toURI()));
  final Map<I18nBundleKey, Collection<Translation>> expectedContent= expectedXlsFile.getContent();
  assertThat(readContent).hasSameSizeAs(expectedContent);
  assertThat(readContent).containsOnlyKeys(FluentIterable.from(expectedContent.keySet()).toArray(I18nBundleKey.class));
  for (final I18nBundleKey bundleKey : readContent.keySet()) {
    assertThat(readContent.get(bundleKey)).containsOnly(FluentIterable.from(expectedContent.get(bundleKey)).toArray(Translation.class));
  }
  //actually only this check is necessary
  assertThat(readContent).isEqualTo(expectedContent);
}