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.Procedure;
25 import org.apache.commons.functor.core.NoOp;
26 import org.apache.commons.functor.core.RightIdentity;
27 import org.junit.Test;
28
29
30
31
32
33 public class TestFullyBoundProcedure extends BaseFunctorTest {
34
35
36
37
38 protected Object makeFunctor() {
39 return new FullyBoundProcedure(NoOp.INSTANCE, "xyzzy", null);
40 }
41
42
43
44
45 @Test
46 public void testRun() throws Exception {
47 Procedure p = new FullyBoundProcedure(new BinaryFunctionBinaryProcedure<Object, Object>(
48 RightIdentity.FUNCTION), "foo", null);
49 p.run();
50 }
51
52 @Test
53 public void testEquals() throws Exception {
54 Procedure f = new FullyBoundProcedure(NoOp.INSTANCE, "xyzzy", null);
55 assertEquals(f, f);
56 assertObjectsAreEqual(f, new FullyBoundProcedure(NoOp.INSTANCE, "xyzzy", null));
57 assertObjectsAreNotEqual(f, new NoOp());
58 assertObjectsAreNotEqual(f, new FullyBoundProcedure(
59 new BinaryFunctionBinaryProcedure<Object, Object>(RightIdentity.FUNCTION), "xyzzy", null));
60 assertObjectsAreNotEqual(f, new FullyBoundProcedure(NoOp.INSTANCE, "foo", null));
61 assertObjectsAreNotEqual(f, new FullyBoundProcedure(NoOp.INSTANCE, null, null));
62 }
63
64 @Test
65 public void testAdaptNull() throws Exception {
66 assertNull(FullyBoundProcedure.bind(null, "xyzzy", null));
67 }
68
69 @Test
70 public void testAdapt() throws Exception {
71 assertNotNull(FullyBoundProcedure.bind(new NoOp(), "xyzzy", "foobar"));
72 assertNotNull(FullyBoundProcedure.bind(new NoOp(), null, null));
73 }
74 }