Skip to content

Commit de78490

Browse files
committed
Added tests for intercepting-filter pattern
1 parent 9059d2b commit de78490

5 files changed

Lines changed: 198 additions & 1 deletion

File tree

intercepting-filter/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,10 @@
1414
<artifactId>junit</artifactId>
1515
<scope>test</scope>
1616
</dependency>
17+
<dependency>
18+
<groupId>org.mockito</groupId>
19+
<artifactId>mockito-core</artifactId>
20+
<scope>test</scope>
21+
</dependency>
1722
</dependencies>
1823
</project>

intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/NameFilter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public String execute(Order order) {
1414
String result = super.execute(order);
1515
if (order.getName() == null || order.getName().isEmpty()
1616
|| order.getName().matches(".*[^\\w|\\s]+.*")) {
17-
return result + "Invalid order! ";
17+
return result + "Invalid name! ";
1818
} else {
1919
return result;
2020
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package com.iluwatar.intercepting.filter;
2+
3+
import org.junit.Test;
4+
5+
import static org.junit.Assert.assertEquals;
6+
import static org.mockito.Matchers.any;
7+
import static org.mockito.Mockito.mock;
8+
import static org.mockito.Mockito.times;
9+
import static org.mockito.Mockito.verify;
10+
import static org.mockito.Mockito.verifyZeroInteractions;
11+
import static org.mockito.Mockito.when;
12+
13+
/**
14+
* Date: 12/13/15 - 3:01 PM
15+
*
16+
* @author Jeroen Meulemeester
17+
*/
18+
public class FilterManagerTest {
19+
20+
@Test
21+
public void testFilterRequest() throws Exception {
22+
final Target target = mock(Target.class);
23+
final FilterManager filterManager = new FilterManager(target);
24+
assertEquals("RUNNING...", filterManager.filterRequest(mock(Order.class)));
25+
verifyZeroInteractions(target);
26+
}
27+
28+
@Test
29+
public void testAddFilter() throws Exception {
30+
final Target target = mock(Target.class);
31+
final FilterManager filterManager = new FilterManager(target);
32+
33+
verifyZeroInteractions(target);
34+
35+
final Filter filter = mock(Filter.class);
36+
when(filter.execute(any(Order.class))).thenReturn("filter");
37+
38+
filterManager.addFilter(filter);
39+
40+
final Order order = mock(Order.class);
41+
assertEquals("filter", filterManager.filterRequest(order));
42+
43+
verify(filter, times(1)).execute(any(Order.class));
44+
verifyZeroInteractions(target, filter, order);
45+
}
46+
}
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
package com.iluwatar.intercepting.filter;
2+
3+
import org.junit.Test;
4+
import org.junit.runner.RunWith;
5+
import org.junit.runners.Parameterized;
6+
import org.junit.runners.Parameterized.Parameters;
7+
8+
import java.util.ArrayList;
9+
import java.util.List;
10+
11+
import static junit.framework.TestCase.assertSame;
12+
import static org.junit.Assert.assertEquals;
13+
import static org.junit.Assert.assertNotNull;
14+
import static org.junit.Assert.assertNull;
15+
16+
/**
17+
* Date: 12/13/15 - 2:17 PM
18+
*
19+
* @author Jeroen Meulemeester
20+
*/
21+
@RunWith(Parameterized.class)
22+
public class FilterTest {
23+
24+
private static final Order PERFECT_ORDER = new Order("name", "12345678901", "addr", "dep", "order");
25+
private static final Order WRONG_ORDER = new Order("name", "12345678901", "addr", "dep", "");
26+
private static final Order WRONG_DEPOSIT = new Order("name", "12345678901", "addr", "", "order");
27+
private static final Order WRONG_ADDRESS = new Order("name", "12345678901", "", "dep", "order");
28+
private static final Order WRONG_CONTACT = new Order("name", "", "addr", "dep", "order");
29+
private static final Order WRONG_NAME = new Order("", "12345678901", "addr", "dep", "order");
30+
31+
@Parameters
32+
public static List<Object[]> getTestData() {
33+
final List<Object[]> testData = new ArrayList<>();
34+
testData.add(new Object[]{new NameFilter(), PERFECT_ORDER, ""});
35+
testData.add(new Object[]{new NameFilter(), WRONG_NAME, "Invalid name!"});
36+
testData.add(new Object[]{new NameFilter(), WRONG_CONTACT, ""});
37+
testData.add(new Object[]{new NameFilter(), WRONG_ADDRESS, ""});
38+
testData.add(new Object[]{new NameFilter(), WRONG_DEPOSIT, ""});
39+
testData.add(new Object[]{new NameFilter(), WRONG_ORDER, ""});
40+
41+
testData.add(new Object[]{new ContactFilter(), PERFECT_ORDER, ""});
42+
testData.add(new Object[]{new ContactFilter(), WRONG_NAME, ""});
43+
testData.add(new Object[]{new ContactFilter(), WRONG_CONTACT, "Invalid contact number!"});
44+
testData.add(new Object[]{new ContactFilter(), WRONG_ADDRESS, ""});
45+
testData.add(new Object[]{new ContactFilter(), WRONG_DEPOSIT, ""});
46+
testData.add(new Object[]{new ContactFilter(), WRONG_ORDER, ""});
47+
48+
testData.add(new Object[]{new AddressFilter(), PERFECT_ORDER, ""});
49+
testData.add(new Object[]{new AddressFilter(), WRONG_NAME, ""});
50+
testData.add(new Object[]{new AddressFilter(), WRONG_CONTACT, ""});
51+
testData.add(new Object[]{new AddressFilter(), WRONG_ADDRESS, "Invalid address!"});
52+
testData.add(new Object[]{new AddressFilter(), WRONG_DEPOSIT, ""});
53+
testData.add(new Object[]{new AddressFilter(), WRONG_ORDER, ""});
54+
55+
testData.add(new Object[]{new DepositFilter(), PERFECT_ORDER, ""});
56+
testData.add(new Object[]{new DepositFilter(), WRONG_NAME, ""});
57+
testData.add(new Object[]{new DepositFilter(), WRONG_CONTACT, ""});
58+
testData.add(new Object[]{new DepositFilter(), WRONG_ADDRESS, ""});
59+
testData.add(new Object[]{new DepositFilter(), WRONG_DEPOSIT, "Invalid deposit number!"});
60+
testData.add(new Object[]{new DepositFilter(), WRONG_ORDER, ""});
61+
62+
testData.add(new Object[]{new OrderFilter(), PERFECT_ORDER, ""});
63+
testData.add(new Object[]{new OrderFilter(), WRONG_NAME, ""});
64+
testData.add(new Object[]{new OrderFilter(), WRONG_CONTACT, ""});
65+
testData.add(new Object[]{new OrderFilter(), WRONG_ADDRESS, ""});
66+
testData.add(new Object[]{new OrderFilter(), WRONG_DEPOSIT, ""});
67+
testData.add(new Object[]{new OrderFilter(), WRONG_ORDER, "Invalid order!"});
68+
69+
return testData;
70+
}
71+
72+
private final Filter filter;
73+
private final Order order;
74+
private final String result;
75+
76+
public FilterTest(Filter filter, Order order, String result) {
77+
this.filter = filter;
78+
this.order = order;
79+
this.result = result;
80+
}
81+
82+
@Test
83+
public void testExecute() throws Exception {
84+
final String result = this.filter.execute(this.order);
85+
assertNotNull(result);
86+
assertEquals(this.result, result.trim());
87+
}
88+
89+
@Test
90+
public void testNext() throws Exception {
91+
assertNull(this.filter.getNext());
92+
assertSame(this.filter, this.filter.getLast());
93+
}
94+
95+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package com.iluwatar.intercepting.filter;
2+
3+
import org.junit.Test;
4+
5+
import static org.junit.Assert.assertEquals;
6+
7+
/**
8+
* Date: 12/13/15 - 2:57 PM
9+
*
10+
* @author Jeroen Meulemeester
11+
*/
12+
public class OrderTest {
13+
14+
private static final String EXPECTED_VALUE = "test";
15+
16+
@Test
17+
public void testSetName() throws Exception {
18+
final Order order = new Order();
19+
order.setName(EXPECTED_VALUE);
20+
assertEquals(EXPECTED_VALUE, order.getName());
21+
}
22+
23+
@Test
24+
public void testSetContactNumber() throws Exception {
25+
final Order order = new Order();
26+
order.setContactNumber(EXPECTED_VALUE);
27+
assertEquals(EXPECTED_VALUE, order.getContactNumber());
28+
}
29+
30+
@Test
31+
public void testSetAddress() throws Exception {
32+
final Order order = new Order();
33+
order.setAddress(EXPECTED_VALUE);
34+
assertEquals(EXPECTED_VALUE, order.getAddress());
35+
}
36+
37+
@Test
38+
public void testSetDepositNumber() throws Exception {
39+
final Order order = new Order();
40+
order.setDepositNumber(EXPECTED_VALUE);
41+
assertEquals(EXPECTED_VALUE, order.getDepositNumber());
42+
}
43+
44+
@Test
45+
public void testSetOrder() throws Exception {
46+
final Order order = new Order();
47+
order.setOrder(EXPECTED_VALUE);
48+
assertEquals(EXPECTED_VALUE, order.getOrder());
49+
}
50+
51+
}

0 commit comments

Comments
 (0)