From 906ec944eb8ec178cdb8bb0ef2b95816143ce5d4 Mon Sep 17 00:00:00 2001 From: RatzzFatzz Date: Tue, 13 Jan 2026 15:50:38 +0100 Subject: [PATCH] Fix filter-date format & add test for filter-date --- .../impl/FileFilter.java | 7 +----- .../model/InputConfig.java | 2 +- .../config/PicoCliTest.java | 23 +++++++++++++++++++ 3 files changed, 25 insertions(+), 7 deletions(-) create mode 100644 src/test/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/config/PicoCliTest.java diff --git a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/FileFilter.java b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/FileFilter.java index 1d7d79b..938283b 100644 --- a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/FileFilter.java +++ b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/FileFilter.java @@ -33,7 +33,7 @@ public class FileFilter { if (!hasMatchingPattern(pathName) || isExcluded(pathName, new HashSet<>(excluded)) - || lastExecutionHandler != null && !isNewOrChanged(pathName) + || lastExecutionHandler != null && !isNewer(pathName, lastExecutionHandler.get(pathName.getAbsolutePath())) || !isNewer(pathName, filterDate)) { log.debug("Excluded {}", pathName); ResultStatistic.getInstance().excluded(); @@ -83,9 +83,4 @@ public class FileFilter { return false; } - - private boolean isNewOrChanged(File pathname) { - Instant lastExecutionDate = lastExecutionHandler.get(pathname.getAbsolutePath()); - return lastExecutionDate == null || isNewer(pathname, lastExecutionDate); - } } diff --git a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/model/InputConfig.java b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/model/InputConfig.java index 5e9c629..76a5dd9 100644 --- a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/model/InputConfig.java +++ b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/model/InputConfig.java @@ -56,7 +56,7 @@ public class InputConfig implements CommandLine.IVersionProvider { // TODO: implement usage @Option(names = {"-n", "--only-new-files"}, description = "ignores all files unchanged and previously processed") private boolean onlyNewFiles; - @Option(names = {"-d", "--filter-date"}, defaultValue = Option.NULL_VALUE, description = "only consider files created newer than entered date (format: \"dd.MM.yyyy-HH:mm:ss\")") + @Option(names = {"-d", "--filter-date"}, defaultValue = Option.NULL_VALUE, description = "only consider files created newer than entered date (following ISO-8601 yyyy-MM-ddTHH:mm:ss.sssZ)") private Instant filterDate; @Option(names = {"-i", "--include-pattern"}, defaultValue = ".*", description = "include files matching pattern") private Pattern includePattern; diff --git a/src/test/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/config/PicoCliTest.java b/src/test/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/config/PicoCliTest.java new file mode 100644 index 0000000..e0b30e8 --- /dev/null +++ b/src/test/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/config/PicoCliTest.java @@ -0,0 +1,23 @@ +package at.pcgamingfreaks.mkvaudiosubtitlechanger.config; + +import at.pcgamingfreaks.mkvaudiosubtitlechanger.impl.CommandRunner; +import at.pcgamingfreaks.mkvaudiosubtitlechanger.impl.validation.ValidationExecutionStrategy; +import org.junit.jupiter.api.Test; +import picocli.CommandLine; + +import java.time.Instant; + +import static at.pcgamingfreaks.mkvaudiosubtitlechanger.util.PathUtils.TEST_FILE; +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class PicoCliTest { + + @Test + void loadFilterDate() { + CommandRunner underTest = new CommandRunner(); + new CommandLine(underTest) + .setExecutionStrategy(new ValidationExecutionStrategy()) + .parseArgs("-d", "2012-12-12T12:12:12.00Z", TEST_FILE); + assertEquals(Instant.parse("2012-12-12T12:12:12.00Z"), underTest.getConfig().getFilterDate()); + } +}