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.assertNull;
21
22 import org.apache.commons.functor.BaseFunctorTest;
23 import org.apache.commons.functor.BinaryFunction;
24 import org.apache.commons.functor.core.Constant;
25 import org.apache.commons.functor.core.Identity;
26 import org.apache.commons.functor.core.LeftIdentity;
27 import org.apache.commons.functor.core.RightIdentity;
28 import org.junit.Test;
29
30
31
32
33
34 public class TestUnaryCompositeBinaryFunction extends BaseFunctorTest {
35
36
37
38
39 protected Object makeFunctor() {
40 return new UnaryCompositeBinaryFunction<Object, Object, Object>(
41 RightIdentity.FUNCTION,
42 Constant.of("left"),
43 Identity.instance());
44 }
45
46
47
48
49 @Test
50 public void testEvaluate() throws Exception {
51 BinaryFunction<Object, Object, Object> f = new UnaryCompositeBinaryFunction<Object, Object, Object>(
52 RightIdentity.FUNCTION,
53 Constant.of("K"),
54 Identity.instance());
55 assertEquals("right",f.evaluate("left","right"));
56 assertNull("right",f.evaluate("left",null));
57 assertEquals("right",f.evaluate(null,"right"));
58 }
59
60 @Test
61 public void testEquals() throws Exception {
62 BinaryFunction<Object, Object, Object> f = new UnaryCompositeBinaryFunction<Object, Object, Object>(
63 LeftIdentity.FUNCTION,
64 Constant.of("left"),
65 Constant.of("right"));
66 assertEquals(f,f);
67 assertObjectsAreEqual(f,new UnaryCompositeBinaryFunction<Object, Object, Object>(
68 LeftIdentity.FUNCTION,
69 Constant.of("left"),
70 Constant.of("right")));
71 assertObjectsAreNotEqual(f,new UnaryCompositeBinaryFunction<Object, Object, Object>(
72 RightIdentity.FUNCTION,
73 Constant.of("left"),
74 Constant.of("right")));
75 assertObjectsAreNotEqual(f,new UnaryCompositeBinaryFunction<Object, Object, Object>(
76 LeftIdentity.FUNCTION,
77 Identity.instance(),
78 Constant.of("right")));
79 assertObjectsAreNotEqual(f,new UnaryCompositeBinaryFunction<Object, Object, Object>(
80 LeftIdentity.FUNCTION,
81 Constant.of("left"),
82 Identity.instance()));
83 }
84
85 }