1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.functor.adapter;
18
19 import static org.junit.Assert.assertEquals;
20 import static org.junit.Assert.assertNotNull;
21 import static org.junit.Assert.assertNull;
22
23 import org.apache.commons.functor.BaseFunctorTest;
24 import org.apache.commons.functor.Function;
25 import org.apache.commons.functor.Procedure;
26 import org.apache.commons.functor.core.Constant;
27 import org.apache.commons.functor.core.NoOp;
28 import org.junit.Test;
29
30
31
32
33
34 public class TestFunctionProcedure extends BaseFunctorTest {
35
36
37
38
39 protected Object makeFunctor() {
40 return new FunctionProcedure(Constant.of("K"));
41 }
42
43
44
45
46 @Test
47 public void testRun() throws Exception {
48 class EvaluateCounter implements Function<Integer> {
49 int count = 0;
50 public Integer evaluate() { return count++; }
51 }
52 EvaluateCounter counter = new EvaluateCounter();
53 Procedure p = new FunctionProcedure(counter);
54 assertEquals(0,counter.count);
55 p.run();
56 assertEquals(1,counter.count);
57 p.run();
58 assertEquals(2,counter.count);
59 }
60
61 @Test
62 public void testEquals() throws Exception {
63 Procedure p = new FunctionProcedure(Constant.of("K"));
64 assertEquals(p,p);
65 assertObjectsAreEqual(p,new FunctionProcedure(Constant.of("K")));
66 assertObjectsAreNotEqual(p,NoOp.INSTANCE);
67 assertObjectsAreNotEqual(p,new FunctionProcedure(Constant.of("J")));
68 }
69
70 @Test
71 public void testAdaptNull() throws Exception {
72 assertNull(FunctionProcedure.adapt(null));
73 }
74
75 @Test
76 public void testAdapt() throws Exception {
77 assertNotNull(FunctionProcedure.adapt(Constant.of("K")));
78 }
79 }