1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.functor.core.composite;
18
19 import static org.junit.Assert.assertEquals;
20
21 import org.apache.commons.functor.BaseFunctorTest;
22 import org.apache.commons.functor.BinaryProcedure;
23 import org.apache.commons.functor.core.Constant;
24 import org.apache.commons.functor.core.LeftIdentity;
25 import org.apache.commons.functor.core.NoOp;
26 import org.junit.Test;
27
28
29
30
31
32 public class TestConditionalBinaryProcedure extends BaseFunctorTest {
33
34
35
36
37 protected Object makeFunctor() {
38 return new ConditionalBinaryProcedure<Object, Object>(
39 Constant.TRUE,
40 NoOp.instance(),
41 NoOp.instance());
42 }
43
44
45
46
47 @Test
48 public void testRun() throws Exception {
49 RunCounter left = new RunCounter();
50 RunCounter right = new RunCounter();
51 ConditionalBinaryProcedure<Boolean, Object> p = new ConditionalBinaryProcedure<Boolean, Object>(
52 LeftIdentity.PREDICATE,
53 left,
54 right);
55 assertEquals(0,left.count);
56 assertEquals(0,right.count);
57 p.run(true, null);
58 assertEquals(1,left.count);
59 assertEquals(0,right.count);
60 p.run(false, null);
61 assertEquals(1,left.count);
62 assertEquals(1,right.count);
63 p.run(true, null);
64 assertEquals(2,left.count);
65 assertEquals(1,right.count);
66 }
67
68 @Test
69 public void testEquals() throws Exception {
70 ConditionalBinaryProcedure<?, ?> p = new ConditionalBinaryProcedure<Boolean, Object>(
71 LeftIdentity.PREDICATE,
72 NoOp.instance(),
73 NoOp.instance());
74 assertEquals(p,p);
75 assertObjectsAreEqual(p,new ConditionalBinaryProcedure<Boolean, Object>(
76 LeftIdentity.PREDICATE,
77 NoOp.instance(),
78 NoOp.instance()));
79 assertObjectsAreNotEqual(p,new ConditionalBinaryProcedure<Object, Object>(
80 Constant.TRUE,
81 NoOp.instance(),
82 NoOp.instance()));
83 }
84
85
86
87
88 static class RunCounter implements BinaryProcedure<Object, Object> {
89 public void run(Object left, Object right) {
90 count++;
91 }
92 public int count = 0;
93 }
94 }