1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.functor.core;
18
19 import static org.junit.Assert.assertEquals;
20 import static org.junit.Assert.assertFalse;
21 import static org.junit.Assert.assertTrue;
22 import static org.junit.Assert.fail;
23
24 import org.apache.commons.functor.BaseFunctorTest;
25 import org.apache.commons.functor.BinaryPredicate;
26 import org.apache.commons.functor.UnaryPredicate;
27 import org.junit.Test;
28
29
30
31
32
33 public class TestIsInstance extends BaseFunctorTest {
34
35
36
37
38 protected Object makeFunctor() {
39 return IsInstance.of(String.class);
40 }
41
42
43
44
45 @Test
46 public void testTest() throws Exception {
47 BinaryPredicate<Object, Class<?>> p = IsInstance.INSTANCE;
48 assertFalse(p.test(null, Number.class));
49 assertFalse(p.test("foo", Number.class));
50 assertTrue(p.test(3, Number.class));
51 assertTrue(p.test(3L, Number.class));
52 }
53
54 @Test
55 public void testBoundTest() throws Exception {
56 UnaryPredicate<Object> p = IsInstance.of(Number.class);
57 assertFalse(p.test(null));
58 assertFalse(p.test("foo"));
59 assertTrue(p.test(3));
60 assertTrue(p.test(3L));
61 }
62
63 @Test
64 public void testInstanceOfNull() throws Exception {
65 BinaryPredicate<Object, Class<?>> p = new IsInstance<Object>();
66 try {
67 p.test("foo", null);
68 fail("Expected NullPointerException");
69 } catch(NullPointerException e) {
70
71 }
72 }
73
74 @Test
75 public void testEquals() throws Exception {
76 BinaryPredicate<Object, Class<?>> p = IsInstance.INSTANCE;
77 assertEquals(p, p);
78 assertObjectsAreEqual(p, IsInstance.instance());
79 assertObjectsAreNotEqual(p,Constant.truePredicate());
80 }
81
82 @Test
83 public void testBoundEquals() throws Exception {
84 UnaryPredicate<Object> p = IsInstance.of(Object.class);
85 assertEquals(p,p);
86 assertObjectsAreEqual(p,IsInstance.of(Object.class));
87 assertObjectsAreNotEqual(p,Constant.truePredicate());
88 assertObjectsAreNotEqual(p,IsInstance.of(null));
89 assertObjectsAreNotEqual(p,IsInstance.of(String.class));
90 }
91 }