From 8dc266c21d27ab91ae0277ba536ae2ba45914efc Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sun, 16 Oct 2022 10:53:46 +0200 Subject: [PATCH] #721 - added new fields "startDate" and "endDate" to search settings --- .../budgetmaster/search/Search.java | 37 +++++++++++++++++-- .../TransactionSearchSpecificationsTest.java | 30 +++++++-------- 2 files changed, 48 insertions(+), 19 deletions(-) diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/search/Search.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/search/Search.java index 221494b7e..1587f38a3 100644 --- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/search/Search.java +++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/search/Search.java @@ -1,8 +1,10 @@ package de.deadlocker8.budgetmaster.search; +import java.time.LocalDate; + public class Search { - public static final Search DEFAULT = new Search("", true, true, true, true, false, 0); + public static final Search DEFAULT = new Search("", true, true, true, true, false, 0, null, null); private String searchText; private boolean searchName; @@ -11,6 +13,8 @@ public class Search private boolean searchTags; private boolean includeHiddenAccounts; private int page; + private LocalDate startDate; + private LocalDate endDate; public Search() { @@ -18,7 +22,7 @@ public class Search this.page = 0; } - public Search(String searchText, boolean searchName, boolean searchDescription, boolean searchCategory, boolean searchTags, boolean includeHiddenAccounts, int page) + public Search(String searchText, boolean searchName, boolean searchDescription, boolean searchCategory, boolean searchTags, boolean includeHiddenAccounts, int page, LocalDate startDate, LocalDate endDate) { this.searchText = searchText; this.searchName = searchName; @@ -27,6 +31,8 @@ public class Search this.searchTags = searchTags; this.includeHiddenAccounts = includeHiddenAccounts; this.page = page; + this.startDate = startDate; + this.endDate = endDate; } public String getSearchText() @@ -99,8 +105,29 @@ public class Search this.page = page; } - public boolean isEmptySearch(){ - return !searchName && !searchDescription && !searchCategory && !searchTags; + public LocalDate getStartDate() + { + return startDate; + } + + public void setStartDate(LocalDate startDate) + { + this.startDate = startDate; + } + + public LocalDate getEndDate() + { + return endDate; + } + + public void setEndDate(LocalDate endDate) + { + this.endDate = endDate; + } + + public boolean isEmptySearch() + { + return !searchName && !searchDescription && !searchCategory && !searchTags && startDate == null && endDate == null; } @Override @@ -114,6 +141,8 @@ public class Search ", searchTags=" + searchTags + ", includeHiddenAccounts=" + includeHiddenAccounts + ", page=" + page + + ", startDate=" + startDate + + ", endDate=" + endDate + '}'; } } diff --git a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionSearchSpecificationsTest.java b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionSearchSpecificationsTest.java index 125494f27..088e0778d 100644 --- a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionSearchSpecificationsTest.java +++ b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionSearchSpecificationsTest.java @@ -171,7 +171,7 @@ class TransactionSearchSpecificationsTest @Test void getMatches_OnlyName() { - Search search = new Search("Test", true, false, false, false, false, 0); + Search search = new Search("Test", true, false, false, false, false, 0, null, null); Specification spec = TransactionSearchSpecifications.withDynamicQuery(search); List<Transaction> results = transactionRepository.findAll(spec); @@ -182,7 +182,7 @@ class TransactionSearchSpecificationsTest @Test void getMatches_PartialName() { - Search search = new Search("es", true, false, false, false, false, 0); + Search search = new Search("es", true, false, false, false, false, 0, null, null); Specification spec = TransactionSearchSpecifications.withDynamicQuery(search); List<Transaction> results = transactionRepository.findAll(spec); @@ -193,7 +193,7 @@ class TransactionSearchSpecificationsTest @Test void getMatches_IgnoreCase() { - Search search = new Search("tEST", true, true, true, true, false, 0); + Search search = new Search("tEST", true, true, true, true, false, 0, null, null); Specification spec = TransactionSearchSpecifications.withDynamicQuery(search); List<Transaction> results = transactionRepository.findAll(spec); @@ -204,7 +204,7 @@ class TransactionSearchSpecificationsTest @Test void getMatches_OnlyDescription() { - Search search = new Search("What", true, true, true, true, false, 0); + Search search = new Search("What", true, true, true, true, false, 0, null, null); Specification spec = TransactionSearchSpecifications.withDynamicQuery(search); List<Transaction> results = transactionRepository.findAll(spec); @@ -215,7 +215,7 @@ class TransactionSearchSpecificationsTest @Test void getMatches_OnlyCategory() { - Search search = new Search(category2.getName(), false, false, true, false, false, 0); + Search search = new Search(category2.getName(), false, false, true, false, false, 0, null, null); Specification spec = TransactionSearchSpecifications.withDynamicQuery(search); List<Transaction> results = transactionRepository.findAll(spec); @@ -227,7 +227,7 @@ class TransactionSearchSpecificationsTest @Test void getMatches_Order() { - Search search = new Search("", true, true, true, true, false, 0); + Search search = new Search("", true, true, true, true, false, 0, null, null); Specification spec = TransactionSearchSpecifications.withDynamicQuery(search); List<Transaction> results = transactionRepository.findAll(spec); @@ -242,7 +242,7 @@ class TransactionSearchSpecificationsTest @Test void getMatches_Mixed() { - Search search = new Search("e", true, true, true, true, false, 0); + Search search = new Search("e", true, true, true, true, false, 0, null, null); Specification spec = TransactionSearchSpecifications.withDynamicQuery(search); List<Transaction> results = transactionRepository.findAll(spec); @@ -256,7 +256,7 @@ class TransactionSearchSpecificationsTest @Test void getMatches_NoMatches() { - Search search = new Search("asuzgdzasuiduzasds", true, true, true, true, false, 0); + Search search = new Search("asuzgdzasuiduzasds", true, true, true, true, false, 0, null, null); Specification spec = TransactionSearchSpecifications.withDynamicQuery(search); List<Transaction> results = transactionRepository.findAll(spec); @@ -266,7 +266,7 @@ class TransactionSearchSpecificationsTest @Test void getMatches_SearchNothing() { - Search search = new Search("egal", false, false, false, false, false, 0); + Search search = new Search("egal", false, false, false, false, false, 0, null, null); Specification spec = TransactionSearchSpecifications.withDynamicQuery(search); List<Transaction> results = transactionRepository.findAll(spec); @@ -276,7 +276,7 @@ class TransactionSearchSpecificationsTest @Test void getMatches_SearchTagsEquals() { - Search search = new Search("MyAwesomeTag", false, false, false, true, false, 0); + Search search = new Search("MyAwesomeTag", false, false, false, true, false, 0, null, null); Specification spec = TransactionSearchSpecifications.withDynamicQuery(search); List<Transaction> results = transactionRepository.findAll(spec); @@ -287,7 +287,7 @@ class TransactionSearchSpecificationsTest @Test void getMatches_SearchTagsLike() { - Search search = new Search("Awesome", false, false, false, true, false, 0); + Search search = new Search("Awesome", false, false, false, true, false, 0, null, null); Specification spec = TransactionSearchSpecifications.withDynamicQuery(search); List<Transaction> results = transactionRepository.findAll(spec); @@ -298,7 +298,7 @@ class TransactionSearchSpecificationsTest @Test void getMatches_IgnoreTransactionsFromHiddenAccounts() { - Search search = new Search("hidden", true, false, false, false, false, 0); + Search search = new Search("hidden", true, false, false, false, false, 0, null, null); Specification spec = TransactionSearchSpecifications.withDynamicQuery(search); List<Transaction> results = transactionRepository.findAll(spec); @@ -308,7 +308,7 @@ class TransactionSearchSpecificationsTest @Test void getMatches_IncludeTransactionsFromHiddenAccounts() { - Search search = new Search("hidden", true, false, false, false, true, 0); + Search search = new Search("hidden", true, false, false, false, true, 0, null, null); Specification spec = TransactionSearchSpecifications.withDynamicQuery(search); List<Transaction> results = transactionRepository.findAll(spec); @@ -318,7 +318,7 @@ class TransactionSearchSpecificationsTest @Test void getMatches_AvoidDuplicatedEntriesIfSearchTextIsFoundInMultipleCriteria() { - Search search = new Search("TagMaster", true, true, true, true, false, 0); + Search search = new Search("TagMaster", true, true, true, true, false, 0, null, null); Specification spec = TransactionSearchSpecifications.withDynamicQuery(search); List<Transaction> results = transactionRepository.findAll(spec); @@ -328,7 +328,7 @@ class TransactionSearchSpecificationsTest @Test void getMatches_IgnoreOrderOfSearchWords() { - Search search = new Search("TagMaster I the am", true, false, false, false, false, 0); + Search search = new Search("TagMaster I the am", true, false, false, false, false, 0, null, null); Specification spec = TransactionSearchSpecifications.withDynamicQuery(search); List<Transaction> results = transactionRepository.findAll(spec); -- GitLab