package com.spun.util.filters.tests; import java.util.Arrays; import com.spun.util.ObjectUtils; import com.spun.util.filters.Filter; import com.spun.util.filters.FilterUtils; import junit.framework.TestCase; public class FilterTest extends TestCase { public void testAll() throws Exception { Integer[] array = {1,2,3,4,5}; FilterOdd filter = new FilterOdd(); assertEquals("null, purified", 0, FilterUtils.retainPurified(array, null).size()); assertEquals("null, extracted", 5, FilterUtils.retainExtracted(array, null).size()); assertEquals("odd",3, FilterUtils.retainExtracted(array, filter).size()); assertEquals("even", 2, FilterUtils.retainPurified(array, filter).size()); assertEquals("odd",3, FilterUtils.retainExtracted(Arrays.asList(array), filter).size()); assertEquals("even", 2, FilterUtils.retainPurified(Arrays.asList(array), filter).size()); } private static class FilterOdd implements Filter { public boolean isExtracted(Object o) throws IllegalArgumentException { ObjectUtils.assertInstance(Integer.class, o); return ((Integer)o).intValue() % 2 == 1; } } }