diff --git a/src/main/java/de/marhali/easyi18n/settings/ProjectSettingsService.java b/src/main/java/de/marhali/easyi18n/settings/ProjectSettingsService.java index 1cc0538..3363ec5 100644 --- a/src/main/java/de/marhali/easyi18n/settings/ProjectSettingsService.java +++ b/src/main/java/de/marhali/easyi18n/settings/ProjectSettingsService.java @@ -31,7 +31,7 @@ public class ProjectSettingsService implements PersistentStateComponent {}); + + // Compare file structure and contents + IOFileFilter fileFilter = TrueFileFilter.INSTANCE; + + File originalDirectory = new File(Objects.requireNonNull(settings.getLocalesDirectory())); + Collection originalFiles = FileUtils.listFiles(originalDirectory, fileFilter, fileFilter); + + File outputDirectory = tempPath.toFile(); + Collection outputFiles = FileUtils.listFiles(outputDirectory, fileFilter, fileFilter); + + assertEquals(originalFiles.size(), outputFiles.size()); + + Iterator originalFilesIterator = originalFiles.iterator(); + Iterator outputFilesIterator = outputFiles.iterator(); + + while(originalFilesIterator.hasNext()) { + File originalFile = originalFilesIterator.next(); + File outputFile = outputFilesIterator.next(); + + assertEquals(FileUtils.readFileToString(originalFile, CHARSET), + FileUtils.readFileToString(outputFile, CHARSET)); + } + } +} diff --git a/src/test/java/de/marhali/easyi18n/e2e/TestSettingsState.java b/src/test/java/de/marhali/easyi18n/e2e/TestSettingsState.java new file mode 100644 index 0000000..1804075 --- /dev/null +++ b/src/test/java/de/marhali/easyi18n/e2e/TestSettingsState.java @@ -0,0 +1,46 @@ +package de.marhali.easyi18n.e2e; + +import de.marhali.easyi18n.io.folder.FolderStrategyType; +import de.marhali.easyi18n.io.parser.ParserStrategyType; +import de.marhali.easyi18n.settings.presets.DefaultPreset; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Settings base for end-to-end tests. + * @author marhali + */ +public class TestSettingsState extends DefaultPreset { + + private final String localesDirectory; + private final FolderStrategyType folderStrategy; + private final ParserStrategyType parserStrategy; + + public TestSettingsState(String localesDirectory, FolderStrategyType folderStrategy, ParserStrategyType parserStrategy) { + this.localesDirectory = localesDirectory; + this.folderStrategy = folderStrategy; + this.parserStrategy = parserStrategy; + } + + + @Override + public @Nullable String getLocalesDirectory() { + return localesDirectory; + } + + @Override + public @NotNull FolderStrategyType getFolderStrategy() { + return folderStrategy; + } + + @Override + public @NotNull ParserStrategyType getParserStrategy() { + return parserStrategy; + } + + @Override + public @NotNull String getFilePattern() { + return "*.*"; + } +}