diff --git a/src/main/java/org/qortal/repository/hsqldb/HSQLDBCacheUtils.java b/src/main/java/org/qortal/repository/hsqldb/HSQLDBCacheUtils.java index 726a0c33..46cd7cab 100644 --- a/src/main/java/org/qortal/repository/hsqldb/HSQLDBCacheUtils.java +++ b/src/main/java/org/qortal/repository/hsqldb/HSQLDBCacheUtils.java @@ -183,6 +183,14 @@ public class HSQLDBCacheUtils { // retain only candidates with names Stream stream = candidates.stream().filter(candidate -> candidate.name != null ); + if(after.isPresent()) { + stream = stream.filter( candidate -> candidate.created > after.get().longValue() ); + } + + if(before.isPresent()) { + stream = stream.filter( candidate -> candidate.created < before.get().longValue() ); + } + if(exclude.isPresent()) stream = stream.filter( candidate -> !exclude.get().get().contains( candidate.name )); diff --git a/src/test/java/org/qortal/test/repository/HSQLDBCacheUtilsTests.java b/src/test/java/org/qortal/test/repository/HSQLDBCacheUtilsTests.java index 0cda76d4..6a984b1d 100644 --- a/src/test/java/org/qortal/test/repository/HSQLDBCacheUtilsTests.java +++ b/src/test/java/org/qortal/test/repository/HSQLDBCacheUtilsTests.java @@ -300,6 +300,19 @@ public class HSQLDBCacheUtilsTests { ); } + @Test + public void testAfterNegative() { + ArbitraryResourceData data = new ArbitraryResourceData(); + data.created = 10L; + data.name = "Joe"; + + filterListByMap( + List.of(data), + NAME_LEVEL, new HashMap<>(Map.of(AFTER, 11L)), + 0 + ); + } + @Test public void testBeforePositive(){ ArbitraryResourceData data = new ArbitraryResourceData(); @@ -313,6 +326,19 @@ public class HSQLDBCacheUtilsTests { ); } + @Test + public void testBeforeNegative(){ + ArbitraryResourceData data = new ArbitraryResourceData(); + data.created = 10L; + data.name = "Joe"; + + filterListByMap( + List.of(data), + NAME_LEVEL, new HashMap<>(Map.of(BEFORE, 9L)), + 0 + ); + } + @Test public void testTitlePositive() {