diff --git a/jabref/src/test/java/org/jabref/model/search/matchers/AndMatcherTest.java b/jabref/src/test/java/org/jabref/model/search/matchers/AndMatcherTest.java index 66cdbfed..84132e68 100644 --- a/jabref/src/test/java/org/jabref/model/search/matchers/AndMatcherTest.java +++ b/jabref/src/test/java/org/jabref/model/search/matchers/AndMatcherTest.java @@ -3,12 +3,30 @@ package org.jabref.model.search.matchers; import org.jabref.model.search.SearchMatcher; import org.jabref.model.search.rules.MockSearchMatcher; +import java.util.ArrayList; +import java.util.List; + public class AndMatcherTest extends SearchMatcherTest { @Override - protected SearchMatcher makeMatcher() { + protected List makeTrueMatchers() { + List matchers = new ArrayList<>(); + matchers.add(buildMatcher(true, true)); + return matchers; + } + + @Override + protected List makeFalseMatchers() { + List matchers = new ArrayList<>(); + matchers.add(buildMatcher(true, false)); + matchers.add(buildMatcher(false, true)); + matchers.add(buildMatcher(false, false)); + return matchers; + } + + private SearchMatcher buildMatcher(boolean first, boolean second) { MatcherSet matcherSet = MatcherSets.build(MatcherSets.MatcherType.AND); - matcherSet.addRule(new MockSearchMatcher(true)); - matcherSet.addRule(new MockSearchMatcher(true)); + matcherSet.addRule(new MockSearchMatcher(first)); + matcherSet.addRule(new MockSearchMatcher(second)); return matcherSet; } } diff --git a/jabref/src/test/java/org/jabref/model/search/matchers/NotAndMatcherTest.java b/jabref/src/test/java/org/jabref/model/search/matchers/NotAndMatcherTest.java index daffc635..adef7b8b 100644 --- a/jabref/src/test/java/org/jabref/model/search/matchers/NotAndMatcherTest.java +++ b/jabref/src/test/java/org/jabref/model/search/matchers/NotAndMatcherTest.java @@ -3,12 +3,30 @@ package org.jabref.model.search.matchers; import org.jabref.model.search.SearchMatcher; import org.jabref.model.search.rules.MockSearchMatcher; +import java.util.ArrayList; +import java.util.List; + public class NotAndMatcherTest extends SearchMatcherTest { @Override - protected SearchMatcher makeMatcher() { + protected List makeTrueMatchers() { + List matchers = new ArrayList<>(); + matchers.add(buildNotMatcher(true, false)); + matchers.add(buildNotMatcher(false, true)); + matchers.add(buildNotMatcher(false, false)); + return matchers; + } + + @Override + protected List makeFalseMatchers() { + List matchers = new ArrayList<>(); + matchers.add(buildNotMatcher(true, true)); + return matchers; + } + + private SearchMatcher buildNotMatcher(boolean first, boolean second) { MatcherSet matcherSet = MatcherSets.build(MatcherSets.MatcherType.AND); - matcherSet.addRule(new MockSearchMatcher(true)); - matcherSet.addRule(new MockSearchMatcher(false)); + matcherSet.addRule(new MockSearchMatcher(first)); + matcherSet.addRule(new MockSearchMatcher(second)); return new NotMatcher(matcherSet); } } diff --git a/jabref/src/test/java/org/jabref/model/search/matchers/NotMatcherTest.java b/jabref/src/test/java/org/jabref/model/search/matchers/NotMatcherTest.java index ed7ba637..d0a7ec99 100644 --- a/jabref/src/test/java/org/jabref/model/search/matchers/NotMatcherTest.java +++ b/jabref/src/test/java/org/jabref/model/search/matchers/NotMatcherTest.java @@ -3,10 +3,24 @@ package org.jabref.model.search.matchers; import org.jabref.model.search.SearchMatcher; import org.jabref.model.search.rules.MockSearchMatcher; +import java.util.ArrayList; +import java.util.List; + public class NotMatcherTest extends SearchMatcherTest { @Override - protected SearchMatcher makeMatcher() { - return new NotMatcher(new MockSearchMatcher(false)); + protected List makeTrueMatchers() { + List matchers = new ArrayList<>(); + matchers.add(new NotMatcher(new MockSearchMatcher(false))); + matchers.add(new NotMatcher(new NotMatcher(new MockSearchMatcher(true)))); + return matchers; + } + + @Override + protected List makeFalseMatchers() { + List matchers = new ArrayList<>(); + matchers.add(new NotMatcher(new MockSearchMatcher(true))); + matchers.add(new NotMatcher(new NotMatcher(new MockSearchMatcher(false)))); + return matchers; } } diff --git a/jabref/src/test/java/org/jabref/model/search/matchers/NotOrMatcherTest.java b/jabref/src/test/java/org/jabref/model/search/matchers/NotOrMatcherTest.java index caade2f5..89f21921 100644 --- a/jabref/src/test/java/org/jabref/model/search/matchers/NotOrMatcherTest.java +++ b/jabref/src/test/java/org/jabref/model/search/matchers/NotOrMatcherTest.java @@ -3,12 +3,30 @@ package org.jabref.model.search.matchers; import org.jabref.model.search.SearchMatcher; import org.jabref.model.search.rules.MockSearchMatcher; +import java.util.ArrayList; +import java.util.List; + public class NotOrMatcherTest extends SearchMatcherTest { @Override - protected SearchMatcher makeMatcher() { + protected List makeTrueMatchers() { + List matchers = new ArrayList<>(); + matchers.add(buildNotMatcher(false, false)); + return matchers; + } + + @Override + protected List makeFalseMatchers() { + List matchers = new ArrayList<>(); + matchers.add(buildNotMatcher(true, true)); + matchers.add(buildNotMatcher(true, false)); + matchers.add(buildNotMatcher(false, true)); + return matchers; + } + + private SearchMatcher buildNotMatcher(boolean first, boolean second) { MatcherSet matcherSet = MatcherSets.build(MatcherSets.MatcherType.OR); - matcherSet.addRule(new MockSearchMatcher(false)); - matcherSet.addRule(new MockSearchMatcher(false)); + matcherSet.addRule(new MockSearchMatcher(first)); + matcherSet.addRule(new MockSearchMatcher(second)); return new NotMatcher(matcherSet); } } diff --git a/jabref/src/test/java/org/jabref/model/search/matchers/OrMatcherTest.java b/jabref/src/test/java/org/jabref/model/search/matchers/OrMatcherTest.java index 68b205e9..0c77b9bb 100644 --- a/jabref/src/test/java/org/jabref/model/search/matchers/OrMatcherTest.java +++ b/jabref/src/test/java/org/jabref/model/search/matchers/OrMatcherTest.java @@ -3,12 +3,30 @@ package org.jabref.model.search.matchers; import org.jabref.model.search.SearchMatcher; import org.jabref.model.search.rules.MockSearchMatcher; +import java.util.ArrayList; +import java.util.List; + public class OrMatcherTest extends SearchMatcherTest { @Override - protected SearchMatcher makeMatcher() { + protected List makeTrueMatchers() { + List matchers = new ArrayList<>(); + matchers.add(buildMatcher(true, true)); + matchers.add(buildMatcher(true, false)); + matchers.add(buildMatcher(false, true)); + return matchers; + } + + @Override + protected List makeFalseMatchers() { + List matchers = new ArrayList<>(); + matchers.add(buildMatcher(false, false)); + return matchers; + } + + private SearchMatcher buildMatcher(boolean first, boolean second) { MatcherSet matcherSet = MatcherSets.build(MatcherSets.MatcherType.OR); - matcherSet.addRule(new MockSearchMatcher(true)); - matcherSet.addRule(new MockSearchMatcher(false)); + matcherSet.addRule(new MockSearchMatcher(first)); + matcherSet.addRule(new MockSearchMatcher(second)); return matcherSet; } } diff --git a/jabref/src/test/java/org/jabref/model/search/matchers/SearchMatcherTest.java b/jabref/src/test/java/org/jabref/model/search/matchers/SearchMatcherTest.java index 7ce5745c..a6d34bfe 100644 --- a/jabref/src/test/java/org/jabref/model/search/matchers/SearchMatcherTest.java +++ b/jabref/src/test/java/org/jabref/model/search/matchers/SearchMatcherTest.java @@ -4,20 +4,37 @@ import org.jabref.model.entry.BibEntry; import org.jabref.model.search.SearchMatcher; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ArgumentsSource; + +import java.util.List; + import static org.junit.jupiter.api.Assertions.*; public abstract class SearchMatcherTest { - private SearchMatcher matcher; - protected abstract SearchMatcher makeMatcher(); + private List trueMatchers; + private List falseMatchers; + protected abstract List makeTrueMatchers(); + protected abstract List makeFalseMatchers(); @BeforeEach public void setUp() { - matcher = makeMatcher(); + trueMatchers = makeTrueMatchers(); + falseMatchers = makeFalseMatchers(); } @Test public void testIsMatch() { - assertTrue(matcher.isMatch(new BibEntry())); + for (SearchMatcher matcher : trueMatchers) { + assertTrue(matcher.isMatch(new BibEntry())); + } + } + + @Test + public void testIsNotMatch() { + for (SearchMatcher matcher : falseMatchers) { + assertFalse(matcher.isMatch(new BibEntry())); + } } }