return state.setLastResults(lastResult);
}
- private static class SearchParameter {
+ static class SearchParameter {
private final boolean exclude;
private final Pattern pattern;
- private SearchParameter(boolean exclude, Pattern pattern) {
+ SearchParameter(boolean exclude, Pattern pattern) {
this.exclude = exclude;
this.pattern = pattern;
}
public boolean matches(String filename) {
- return pattern.matcher(filename).find() && !exclude;
+ return pattern.matcher(filename).find() == !exclude;
}
public static SearchParameter from(String parameter) {
--- /dev/null
+package net.pterodactylus.xdcc.ui.stdin;
+
+import static java.util.regex.Pattern.compile;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.equalTo;
+
+import net.pterodactylus.xdcc.ui.stdin.SearchCommand.SearchParameter;
+
+import org.junit.Test;
+
+public class SearchCommandTest {
+
+ @Test
+ public void searchParameterMatchesIfRegexMatchesAndExcludeIsFalse() {
+ SearchParameter searchParameter = new SearchParameter(false, compile("abc"));
+ assertThat(searchParameter.matches("test abctest"), equalTo(true));
+ }
+
+ @Test
+ public void searchParameterDoesNotMatchIfRegexDoesNotMatchAndExcludeIsFalse() {
+ SearchParameter searchParameter = new SearchParameter(false, compile("abc"));
+ assertThat(searchParameter.matches("test deftest"), equalTo(false));
+ }
+
+ @Test
+ public void searchParameterMatchesIfRegexDoesNotMatchAndExcludeIsTrue() {
+ SearchParameter searchParameter = new SearchParameter(true, compile("abc"));
+ assertThat(searchParameter.matches("test deftest"), equalTo(true));
+ }
+
+ @Test
+ public void searchParameterDoesNotMatchIfRegexMatchesAndExcludeIsTrue() {
+ SearchParameter searchParameter = new SearchParameter(true, compile("abc"));
+ assertThat(searchParameter.matches("test abctest"), equalTo(false));
+ }
+
+}