package org.jabref.logic.search;
import org.jabref.logic.search.rules.describer.ContainsAndRegexBasedSearchRuleDescriber;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class ContainsAndRegexBasedSearchRuleDescriberTest {
@Test
public void testNoAst() {
String query = "a b";
evaluateNoAst(query, true, true, "This search contains entries in which any field contains the regular expression " +
"<b>a</b><b>b</b> (case sensitive). " +
"<p><br>Hint: To search specific fields only, " +
"enter for example:<p><tt>author=smith and title=electrical</tt>");
evaluateNoAst(query, true, false, "This search contains entries in which any field contains the term " +
"<b>a</b><b>b</b> (case sensitive). " +
"<p><br>Hint: To search specific fields only, enter for " +
"example:<p><tt>author=smith and title=electrical</tt>");
evaluateNoAst(query, false, false, "This search contains entries in which any field contains the term " +
"<b>a</b><b>b</b> (case insensitive). " +
"<p><br>Hint: To search specific fields only, enter for " +
"example:<p><tt>author=smith and title=electrical</tt>");
evaluateNoAst(query, false, true, "This search contains entries in which any field contains the regular " +
"expression <b>a</b><b>b</b> (case insensitive). " +
"<p><br>Hint: To search specific fields only, enter for " +
"example:<p><tt>author=smith and title=electrical</tt>");
}
private void evaluateNoAst(String query, boolean caseSensitive, boolean regex, String expected) {
assertEquals(expected, new ContainsAndRegexBasedSearchRuleDescriber(caseSensitive, regex, query).getDescription());
}
}