diff --git a/intercepting-filter/pom.xml b/intercepting-filter/pom.xml
index c69f40ee5..2c10af5d0 100644
--- a/intercepting-filter/pom.xml
+++ b/intercepting-filter/pom.xml
@@ -14,5 +14,10 @@
junit
test
+
+ org.mockito
+ mockito-core
+ test
+
diff --git a/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/NameFilter.java b/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/NameFilter.java
index a458e475b..2f431caad 100644
--- a/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/NameFilter.java
+++ b/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/NameFilter.java
@@ -14,7 +14,7 @@ public class NameFilter extends AbstractFilter {
String result = super.execute(order);
if (order.getName() == null || order.getName().isEmpty()
|| order.getName().matches(".*[^\\w|\\s]+.*")) {
- return result + "Invalid order! ";
+ return result + "Invalid name! ";
} else {
return result;
}
diff --git a/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/FilterManagerTest.java b/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/FilterManagerTest.java
new file mode 100644
index 000000000..6806cd70a
--- /dev/null
+++ b/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/FilterManagerTest.java
@@ -0,0 +1,46 @@
+package com.iluwatar.intercepting.filter;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.when;
+
+/**
+ * Date: 12/13/15 - 3:01 PM
+ *
+ * @author Jeroen Meulemeester
+ */
+public class FilterManagerTest {
+
+ @Test
+ public void testFilterRequest() throws Exception {
+ final Target target = mock(Target.class);
+ final FilterManager filterManager = new FilterManager(target);
+ assertEquals("RUNNING...", filterManager.filterRequest(mock(Order.class)));
+ verifyZeroInteractions(target);
+ }
+
+ @Test
+ public void testAddFilter() throws Exception {
+ final Target target = mock(Target.class);
+ final FilterManager filterManager = new FilterManager(target);
+
+ verifyZeroInteractions(target);
+
+ final Filter filter = mock(Filter.class);
+ when(filter.execute(any(Order.class))).thenReturn("filter");
+
+ filterManager.addFilter(filter);
+
+ final Order order = mock(Order.class);
+ assertEquals("filter", filterManager.filterRequest(order));
+
+ verify(filter, times(1)).execute(any(Order.class));
+ verifyZeroInteractions(target, filter, order);
+ }
+}
\ No newline at end of file
diff --git a/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/FilterTest.java b/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/FilterTest.java
new file mode 100644
index 000000000..f15760f08
--- /dev/null
+++ b/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/FilterTest.java
@@ -0,0 +1,95 @@
+package com.iluwatar.intercepting.filter;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static junit.framework.TestCase.assertSame;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+/**
+ * Date: 12/13/15 - 2:17 PM
+ *
+ * @author Jeroen Meulemeester
+ */
+@RunWith(Parameterized.class)
+public class FilterTest {
+
+ private static final Order PERFECT_ORDER = new Order("name", "12345678901", "addr", "dep", "order");
+ private static final Order WRONG_ORDER = new Order("name", "12345678901", "addr", "dep", "");
+ private static final Order WRONG_DEPOSIT = new Order("name", "12345678901", "addr", "", "order");
+ private static final Order WRONG_ADDRESS = new Order("name", "12345678901", "", "dep", "order");
+ private static final Order WRONG_CONTACT = new Order("name", "", "addr", "dep", "order");
+ private static final Order WRONG_NAME = new Order("", "12345678901", "addr", "dep", "order");
+
+ @Parameters
+ public static List