Skip to content
Snippets Groups Projects
Commit f591ae26 authored by Tobias Ullerich's avatar Tobias Ullerich
Browse files

#274 - Search Tags

parent fdd37de7
No related branches found
No related tags found
No related merge requests found
Pipeline #1468 failed
...@@ -2,6 +2,8 @@ package de.deadlocker8.budgetmaster.transactions; ...@@ -2,6 +2,8 @@ package de.deadlocker8.budgetmaster.transactions;
import de.deadlocker8.budgetmaster.categories.Category; import de.deadlocker8.budgetmaster.categories.Category;
import de.deadlocker8.budgetmaster.search.Search; import de.deadlocker8.budgetmaster.search.Search;
import de.deadlocker8.budgetmaster.tags.Tag;
import de.deadlocker8.budgetmaster.tags.Tag_;
import org.springframework.data.jpa.domain.Specification; import org.springframework.data.jpa.domain.Specification;
import javax.persistence.criteria.Join; import javax.persistence.criteria.Join;
...@@ -35,11 +37,11 @@ public class TransactionSearchSpecifications ...@@ -35,11 +37,11 @@ public class TransactionSearchSpecifications
predicates.add(builder.like(builder.lower(categoryJoin.get("name").as(String.class)), pattern)); predicates.add(builder.like(builder.lower(categoryJoin.get("name").as(String.class)), pattern));
} }
// if(search.isSearchTags()) if(search.isSearchTags())
// { {
// Join<Transaction, Tag> tagJoin = transaction.join(Transaction_.tags, JoinType.INNER); final Join<Transaction, Tag> tagJoin = transaction.join(Transaction_.tags, JoinType.LEFT);
// predicates.add(builder.like(builder.lower(tagJoin.get(Tag_.name)), pattern)); predicates.add(builder.like(builder.lower(tagJoin.get(Tag_.name).as(String.class)), pattern));
// } }
query.orderBy(builder.desc(transaction.get(Transaction_.date))); query.orderBy(builder.desc(transaction.get(Transaction_.date)));
Predicate[] predicatesArray = new Predicate[predicates.size()]; Predicate[] predicatesArray = new Predicate[predicates.size()];
......
...@@ -237,4 +237,30 @@ public class TransactionSearchSpecificationsTest ...@@ -237,4 +237,30 @@ public class TransactionSearchSpecificationsTest
List<Transaction> results = transactionRepository.findAll(spec); List<Transaction> results = transactionRepository.findAll(spec);
assertEquals(0, results.size()); assertEquals(0, results.size());
} }
@Test
public void getMatches_SearchTagsEquals()
{
Search search = new Search("MyAwesomeTag", false, false, false,true, 0);
Specification spec = TransactionSearchSpecifications.withDynamicQuery(search);
List<Transaction> results = transactionRepository.findAll(spec);
assertTrue(results.contains(transaction1));
assertFalse(results.contains(transaction2));
assertFalse(results.contains(repeatingTransaction));
assertFalse(results.contains(transferTransaction));
}
@Test
public void getMatches_SearchTagsLike()
{
Search search = new Search("Awesome", false, false, false,true, 0);
Specification spec = TransactionSearchSpecifications.withDynamicQuery(search);
List<Transaction> results = transactionRepository.findAll(spec);
assertTrue(results.contains(transaction1));
assertFalse(results.contains(transaction2));
assertFalse(results.contains(repeatingTransaction));
assertFalse(results.contains(transferTransaction));
}
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment