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.Function;
25 import org.apache.commons.functor.core.Constant;
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 TestFullyBoundFunction extends BaseFunctorTest {
35
36
37
38
39 protected Object makeFunctor() {
40 return new FullyBoundFunction<Object>(RightIdentity.FUNCTION, null, "xyzzy");
41 }
42
43
44
45
46 @Test
47 public void testEvaluate() throws Exception {
48 Function<Object> f = new FullyBoundFunction<Object>(RightIdentity.FUNCTION, null, "foo");
49 assertEquals("foo", f.evaluate());
50 }
51
52 @Test
53 public void testEquals() throws Exception {
54 Function<Object> f = new FullyBoundFunction<Object>(RightIdentity.FUNCTION, null, "xyzzy");
55 assertEquals(f, f);
56 assertObjectsAreEqual(f, new FullyBoundFunction<Object>(RightIdentity.FUNCTION, null, "xyzzy"));
57 assertObjectsAreNotEqual(f, Constant.of("xyzzy"));
58 assertObjectsAreNotEqual(f, new FullyBoundFunction<Object>(LeftIdentity.FUNCTION, null, "xyzzy"));
59 assertObjectsAreNotEqual(f, new FullyBoundFunction<Object>(RightIdentity.FUNCTION, null, "bar"));
60 }
61
62 @Test
63 public void testAdaptNull() throws Exception {
64 assertNull(FullyBoundFunction.bind(null, null, "xyzzy"));
65 }
66
67 @Test
68 public void testAdapt() throws Exception {
69 assertNotNull(FullyBoundFunction.bind(RightIdentity.FUNCTION, "xyzzy", "foobar"));
70 assertNotNull(FullyBoundFunction.bind(RightIdentity.FUNCTION, null, null));
71 }
72 }