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.UnaryProcedure;
23 import org.apache.commons.functor.core.Constant;
24 import org.apache.commons.functor.core.Identity;
25 import org.apache.commons.functor.core.NoOp;
26 import org.junit.Test;
27
28
29
30
31
32 public class TestConditionalUnaryProcedure extends BaseFunctorTest {
33
34
35
36
37 protected Object makeFunctor() {
38 return new ConditionalUnaryProcedure<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 ConditionalUnaryProcedure<Object> p = new ConditionalUnaryProcedure<Object>(
52 Identity.INSTANCE,
53 left,
54 right);
55 assertEquals(0,left.count);
56 assertEquals(0,right.count);
57 p.run(Boolean.TRUE);
58 assertEquals(1,left.count);
59 assertEquals(0,right.count);
60 p.run(Boolean.FALSE);
61 assertEquals(1,left.count);
62 assertEquals(1,right.count);
63 p.run(Boolean.TRUE);
64 assertEquals(2,left.count);
65 assertEquals(1,right.count);
66 }
67
68 @Test
69 public void testEquals() throws Exception {
70 ConditionalUnaryProcedure<Object> p = new ConditionalUnaryProcedure<Object>(
71 Identity.INSTANCE,
72 NoOp.INSTANCE,
73 NoOp.INSTANCE);
74 assertEquals(p,p);
75 assertObjectsAreEqual(p,new ConditionalUnaryProcedure<Object>(
76 Identity.INSTANCE,
77 NoOp.INSTANCE,
78 NoOp.INSTANCE));
79 assertObjectsAreNotEqual(p,new ConditionalUnaryProcedure<Object>(
80 Constant.TRUE,
81 NoOp.INSTANCE,
82 NoOp.INSTANCE));
83 }
84
85
86
87
88 static class RunCounter implements UnaryProcedure<Object> {
89 public void run(Object obj) {
90 count++;
91 }
92 public int count = 0;
93 }
94 }