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.BinaryFunction;
25 import org.apache.commons.functor.BinaryProcedure;
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 TestBinaryFunctionBinaryProcedure extends BaseFunctorTest {
35
36
37
38
39 protected Object makeFunctor() {
40 return new BinaryFunctionBinaryProcedure<Object, Object>(Constant.of("K"));
41 }
42
43
44
45
46 @Test
47 public void testRun() throws Exception {
48 class EvaluateCounter implements BinaryFunction<Object, Object, Integer> {
49 int count = 0;
50 public Integer evaluate(Object a, Object b) { return new Integer(count++); }
51 }
52 EvaluateCounter counter = new EvaluateCounter();
53 BinaryProcedure<Object, Object> p = new BinaryFunctionBinaryProcedure<Object, Object>(counter);
54 assertEquals(0,counter.count);
55 p.run(null,null);
56 assertEquals(1,counter.count);
57 p.run("x","y");
58 assertEquals(2,counter.count);
59 }
60
61 @Test
62 public void testEquals() throws Exception {
63 BinaryProcedure<Object, Object> p = new BinaryFunctionBinaryProcedure<Object, Object>(Constant.of("K"));
64 assertEquals(p,p);
65 assertObjectsAreEqual(p,new BinaryFunctionBinaryProcedure<Object, Object>(Constant.of("K")));
66 assertObjectsAreNotEqual(p,new NoOp());
67 assertObjectsAreNotEqual(p,new BinaryFunctionBinaryProcedure<Object, Object>(Constant.of("J")));
68 }
69
70 @Test
71 public void testAdaptNull() throws Exception {
72 assertNull(BinaryFunctionBinaryProcedure.adapt(null));
73 }
74
75 @Test
76 public void testAdapt() throws Exception {
77 assertNotNull(BinaryFunctionBinaryProcedure.adapt(Constant.of("K")));
78 }
79 }