Added tests for intercepting-filter pattern
This commit is contained in:
@ -14,5 +14,10 @@
|
|||||||
<artifactId>junit</artifactId>
|
<artifactId>junit</artifactId>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.mockito</groupId>
|
||||||
|
<artifactId>mockito-core</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
@ -14,7 +14,7 @@ public class NameFilter extends AbstractFilter {
|
|||||||
String result = super.execute(order);
|
String result = super.execute(order);
|
||||||
if (order.getName() == null || order.getName().isEmpty()
|
if (order.getName() == null || order.getName().isEmpty()
|
||||||
|| order.getName().matches(".*[^\\w|\\s]+.*")) {
|
|| order.getName().matches(".*[^\\w|\\s]+.*")) {
|
||||||
return result + "Invalid order! ";
|
return result + "Invalid name! ";
|
||||||
} else {
|
} else {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
@ -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<Object[]> getTestData() {
|
||||||
|
final List<Object[]> testData = new ArrayList<>();
|
||||||
|
testData.add(new Object[]{new NameFilter(), PERFECT_ORDER, ""});
|
||||||
|
testData.add(new Object[]{new NameFilter(), WRONG_NAME, "Invalid name!"});
|
||||||
|
testData.add(new Object[]{new NameFilter(), WRONG_CONTACT, ""});
|
||||||
|
testData.add(new Object[]{new NameFilter(), WRONG_ADDRESS, ""});
|
||||||
|
testData.add(new Object[]{new NameFilter(), WRONG_DEPOSIT, ""});
|
||||||
|
testData.add(new Object[]{new NameFilter(), WRONG_ORDER, ""});
|
||||||
|
|
||||||
|
testData.add(new Object[]{new ContactFilter(), PERFECT_ORDER, ""});
|
||||||
|
testData.add(new Object[]{new ContactFilter(), WRONG_NAME, ""});
|
||||||
|
testData.add(new Object[]{new ContactFilter(), WRONG_CONTACT, "Invalid contact number!"});
|
||||||
|
testData.add(new Object[]{new ContactFilter(), WRONG_ADDRESS, ""});
|
||||||
|
testData.add(new Object[]{new ContactFilter(), WRONG_DEPOSIT, ""});
|
||||||
|
testData.add(new Object[]{new ContactFilter(), WRONG_ORDER, ""});
|
||||||
|
|
||||||
|
testData.add(new Object[]{new AddressFilter(), PERFECT_ORDER, ""});
|
||||||
|
testData.add(new Object[]{new AddressFilter(), WRONG_NAME, ""});
|
||||||
|
testData.add(new Object[]{new AddressFilter(), WRONG_CONTACT, ""});
|
||||||
|
testData.add(new Object[]{new AddressFilter(), WRONG_ADDRESS, "Invalid address!"});
|
||||||
|
testData.add(new Object[]{new AddressFilter(), WRONG_DEPOSIT, ""});
|
||||||
|
testData.add(new Object[]{new AddressFilter(), WRONG_ORDER, ""});
|
||||||
|
|
||||||
|
testData.add(new Object[]{new DepositFilter(), PERFECT_ORDER, ""});
|
||||||
|
testData.add(new Object[]{new DepositFilter(), WRONG_NAME, ""});
|
||||||
|
testData.add(new Object[]{new DepositFilter(), WRONG_CONTACT, ""});
|
||||||
|
testData.add(new Object[]{new DepositFilter(), WRONG_ADDRESS, ""});
|
||||||
|
testData.add(new Object[]{new DepositFilter(), WRONG_DEPOSIT, "Invalid deposit number!"});
|
||||||
|
testData.add(new Object[]{new DepositFilter(), WRONG_ORDER, ""});
|
||||||
|
|
||||||
|
testData.add(new Object[]{new OrderFilter(), PERFECT_ORDER, ""});
|
||||||
|
testData.add(new Object[]{new OrderFilter(), WRONG_NAME, ""});
|
||||||
|
testData.add(new Object[]{new OrderFilter(), WRONG_CONTACT, ""});
|
||||||
|
testData.add(new Object[]{new OrderFilter(), WRONG_ADDRESS, ""});
|
||||||
|
testData.add(new Object[]{new OrderFilter(), WRONG_DEPOSIT, ""});
|
||||||
|
testData.add(new Object[]{new OrderFilter(), WRONG_ORDER, "Invalid order!"});
|
||||||
|
|
||||||
|
return testData;
|
||||||
|
}
|
||||||
|
|
||||||
|
private final Filter filter;
|
||||||
|
private final Order order;
|
||||||
|
private final String result;
|
||||||
|
|
||||||
|
public FilterTest(Filter filter, Order order, String result) {
|
||||||
|
this.filter = filter;
|
||||||
|
this.order = order;
|
||||||
|
this.result = result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testExecute() throws Exception {
|
||||||
|
final String result = this.filter.execute(this.order);
|
||||||
|
assertNotNull(result);
|
||||||
|
assertEquals(this.result, result.trim());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testNext() throws Exception {
|
||||||
|
assertNull(this.filter.getNext());
|
||||||
|
assertSame(this.filter, this.filter.getLast());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,51 @@
|
|||||||
|
package com.iluwatar.intercepting.filter;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Date: 12/13/15 - 2:57 PM
|
||||||
|
*
|
||||||
|
* @author Jeroen Meulemeester
|
||||||
|
*/
|
||||||
|
public class OrderTest {
|
||||||
|
|
||||||
|
private static final String EXPECTED_VALUE = "test";
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSetName() throws Exception {
|
||||||
|
final Order order = new Order();
|
||||||
|
order.setName(EXPECTED_VALUE);
|
||||||
|
assertEquals(EXPECTED_VALUE, order.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSetContactNumber() throws Exception {
|
||||||
|
final Order order = new Order();
|
||||||
|
order.setContactNumber(EXPECTED_VALUE);
|
||||||
|
assertEquals(EXPECTED_VALUE, order.getContactNumber());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSetAddress() throws Exception {
|
||||||
|
final Order order = new Order();
|
||||||
|
order.setAddress(EXPECTED_VALUE);
|
||||||
|
assertEquals(EXPECTED_VALUE, order.getAddress());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSetDepositNumber() throws Exception {
|
||||||
|
final Order order = new Order();
|
||||||
|
order.setDepositNumber(EXPECTED_VALUE);
|
||||||
|
assertEquals(EXPECTED_VALUE, order.getDepositNumber());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSetOrder() throws Exception {
|
||||||
|
final Order order = new Order();
|
||||||
|
order.setOrder(EXPECTED_VALUE);
|
||||||
|
assertEquals(EXPECTED_VALUE, order.getOrder());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Reference in New Issue
Block a user