1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.collections4.functors;
18
19 import java.util.ArrayList;
20 import java.util.Collection;
21 import java.util.Collections;
22 import java.util.List;
23
24 import org.apache.commons.collections4.Predicate;
25 import org.junit.Assert;
26 import org.junit.Test;
27
28
29
30
31
32
33 public abstract class AbstractCompositePredicateTest<T> extends AbstractMockPredicateTest<T> {
34
35
36
37
38
39
40 protected AbstractCompositePredicateTest(final T testValue) {
41 super(testValue);
42 }
43
44
45
46
47
48
49
50
51 protected abstract Predicate<T> getPredicateInstance(final Predicate<? super T> ... predicates);
52
53
54
55
56
57
58
59
60 protected abstract Predicate<T> getPredicateInstance(final Collection<Predicate<T>> predicates);
61
62
63
64
65
66
67
68
69
70 protected final Predicate<T> getPredicateInstance(final Boolean... mockReturnValues) {
71 final List<Predicate<T>> predicates = new ArrayList<>();
72 for (final Boolean returnValue : mockReturnValues) {
73 predicates.add(createMockPredicate(returnValue));
74 }
75 return getPredicateInstance(predicates);
76 }
77
78
79
80
81 @SuppressWarnings("unchecked")
82 public void singleElementArrayToGetInstance() {
83 final Predicate<T> predicate = createMockPredicate(null);
84 final Predicate<T> allPredicate = getPredicateInstance(predicate);
85 Assert.assertSame("expected argument to be returned by getInstance()", predicate, allPredicate);
86 }
87
88
89
90
91
92 public void singletonCollectionToGetInstance() {
93 final Predicate<T> predicate = createMockPredicate(null);
94 final Predicate<T> allPredicate = getPredicateInstance(
95 Collections.<Predicate<T>>singleton(predicate));
96 Assert.assertSame("expected argument to be returned by getInstance()", predicate, allPredicate);
97 }
98
99
100
101
102 @Test(expected = NullPointerException.class)
103 public final void nullArrayToGetInstance() {
104 getPredicateInstance((Predicate<T>[]) null);
105 }
106
107
108
109
110 @SuppressWarnings({"unchecked"})
111 @Test(expected = NullPointerException.class)
112 public final void nullElementInArrayToGetInstance() {
113 getPredicateInstance(new Predicate[] { null });
114 }
115
116
117
118
119 @SuppressWarnings({"unchecked"})
120 @Test(expected = NullPointerException.class)
121 public final void nullElementsInArrayToGetInstance() {
122 getPredicateInstance(new Predicate[] { null, null });
123 }
124
125
126
127
128
129 @Test(expected = NullPointerException.class)
130 public final void nullCollectionToGetInstance() {
131 getPredicateInstance((Collection<Predicate<T>>) null);
132 }
133
134
135
136
137 @Test(expected = NullPointerException.class)
138 public final void nullElementsInCollectionToGetInstance() {
139 final Collection<Predicate<T>> coll = new ArrayList<>();
140 coll.add(null);
141 coll.add(null);
142 getPredicateInstance(coll);
143 }
144 }