/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ package net.sourceforge.pmd.lang.symboltable; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.List; import org.junit.Test; import net.sourceforge.pmd.util.SearchFunction; public class ApplierTest { private static class MyFunction implements SearchFunction<Object> { private int numCallbacks = 0; private final int maxCallbacks; MyFunction(int maxCallbacks) { this.maxCallbacks = maxCallbacks; } @Override public boolean applyTo(Object o) { this.numCallbacks++; return numCallbacks < maxCallbacks; } public int getNumCallbacks() { return this.numCallbacks; } } @Test public void testSimple() { MyFunction f = new MyFunction(Integer.MAX_VALUE); List<Object> l = new ArrayList<>(); l.add(new Object()); l.add(new Object()); l.add(new Object()); Applier.apply(f, l.iterator()); assertEquals(l.size(), f.getNumCallbacks()); } @Test public void testLimit() { MyFunction f = new MyFunction(2); List<Object> l = new ArrayList<>(); l.add(new Object()); l.add(new Object()); l.add(new Object()); Applier.apply(f, l.iterator()); assertEquals(2, f.getNumCallbacks()); } public static junit.framework.Test suite() { return new junit.framework.JUnit4TestAdapter(ApplierTest.class); } }