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