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 import static org.junit.Assert.fail;
21
22 import org.apache.commons.functor.BaseFunctorTest;
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
27
28
29
30
31 public class TestCompositeUnaryProcedure extends BaseFunctorTest {
32
33
34
35
36 protected Object makeFunctor() {
37 return Composite.procedure(NoOp.instance(), Constant.TRUE);
38 }
39
40
41
42
43 public void testRun() throws Exception {
44 Composite.procedure(NoOp.instance(), Identity.instance()).run(null);
45 }
46
47 @SuppressWarnings("unchecked")
48 public void testNullNotAllowed() throws Exception {
49 try {
50 new CompositeUnaryProcedure(null);
51 fail("Expected IllegalArgumentException");
52 } catch(IllegalArgumentException e) {
53
54 }
55 try {
56 new CompositeUnaryProcedure<Object>(NoOp.instance()).of(null);
57 fail("Expected IllegalArgumentException");
58 } catch(IllegalArgumentException e) {
59
60 }
61 }
62 public void testOf() throws Exception {
63 Composite.procedure(NoOp.instance()).of(Identity.instance()).run(null);
64 }
65
66 public void testEquals() throws Exception {
67 CompositeUnaryProcedure<Object> f = Composite.procedure(NoOp.instance());
68 assertEquals(f,f);
69 CompositeUnaryProcedure<Object> g = Composite.procedure(NoOp.instance());
70 assertObjectsAreEqual(f,g);
71
72 for (int i=0;i<3;i++) {
73 f = f.of(Constant.of("x"));
74 assertObjectsAreNotEqual(f,g);
75 g = g.of(Constant.of("x"));
76 assertObjectsAreEqual(f,g);
77 f = f.of(Constant.of("y")).of(Constant.of("z"));
78 assertObjectsAreNotEqual(f,g);
79 g = g.of(Constant.of("y")).of(Constant.of("z"));
80 assertObjectsAreEqual(f,g);
81 }
82
83 assertObjectsAreNotEqual(f,Constant.FALSE);
84 }
85
86 }