Added tests for intercepting-filter pattern
This commit is contained in:
@ -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;
|
||||
}
|
||||
|
@ -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