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.assertNotNull;
21 import static org.junit.Assert.assertNull;
22
23 import org.apache.commons.functor.BaseFunctorTest;
24 import org.apache.commons.functor.BinaryProcedure;
25 import org.apache.commons.functor.core.NoOp;
26 import org.junit.Test;
27
28
29
30
31
32 public class TestTransposedProcedure extends BaseFunctorTest {
33
34
35
36
37 protected Object makeFunctor() {
38 return new TransposedProcedure<Object, Object>(NoOp.INSTANCE);
39 }
40
41
42
43
44 @Test
45 public void testEvaluate() throws Exception {
46 LeftNotNullCounter counter = new LeftNotNullCounter();
47 BinaryProcedure<Object, Object> p = new TransposedProcedure<Object, Object>(counter);
48 assertEquals(0,counter.count);
49 p.run(null,"not null");
50 assertEquals(1,counter.count);
51 p.run("not null",null);
52 assertEquals(1,counter.count);
53 }
54
55 @Test
56 public void testEquals() throws Exception {
57 BinaryProcedure<Object, Object> p = new TransposedProcedure<Object, Object>(NoOp.INSTANCE);
58 assertEquals(p,p);
59 assertObjectsAreEqual(p,new TransposedProcedure<Object, Object>(NoOp.INSTANCE));
60 assertObjectsAreEqual(p,TransposedProcedure.transpose(NoOp.INSTANCE));
61 assertObjectsAreNotEqual(p,new TransposedProcedure<Object, Object>(new TransposedProcedure<Object, Object>(NoOp.INSTANCE)));
62 assertObjectsAreNotEqual(p,NoOp.INSTANCE);
63 }
64
65 @Test
66 public void testTransposeNull() throws Exception {
67 assertNull(TransposedProcedure.transpose(null));
68 }
69
70 @Test
71 public void testTranspose() throws Exception {
72 assertNotNull(TransposedProcedure.transpose(NoOp.INSTANCE));
73 }
74
75
76
77
78 static class LeftNotNullCounter implements BinaryProcedure<Object, Object> {
79 public void run(Object a, Object b) {
80 if (null != a) {
81 count++;
82 }
83 }
84 public int count = 0;
85 }
86
87 }