16
16
17
17
package io .github .alexengrig .lambdax .collection ;
18
18
19
+ import io .github .alexengrig .lambdax .OptionalX ;
19
20
import org .junit .Test ;
20
21
21
22
import java .util .HashSet ;
23
+ import java .util .Optional ;
22
24
import java .util .Set ;
23
25
import java .util .function .Consumer ;
24
26
import java .util .function .Function ;
@@ -36,6 +38,17 @@ public void checkContains() {
36
38
assertTrue (containsValue .test (numbers ));
37
39
}
38
40
41
+ @ Test
42
+ public void checkContainsOptional () {
43
+ double value = 1.1 ;
44
+ Set <Number > numbers = new HashSet <>();
45
+ numbers .add (value );
46
+ Set <Number > actual = Optional .of (numbers )
47
+ .filter (SetX .contains (value ))
48
+ .orElseThrow (IllegalStateException ::new );
49
+ assertTrue (actual .contains (value ));
50
+ }
51
+
39
52
@ Test
40
53
public void checkContainsAll () {
41
54
int value = 2 ;
@@ -47,6 +60,19 @@ public void checkContainsAll() {
47
60
assertTrue (containsAllValues .test (numbers ));
48
61
}
49
62
63
+ @ Test
64
+ public void checkContainsAllOptional () {
65
+ double value = 2.1 ;
66
+ Set <Number > numbers = new HashSet <>();
67
+ numbers .add (value );
68
+ Set <Double > values = new HashSet <>();
69
+ values .add (value );
70
+ Set <Number > actual = Optional .of (numbers )
71
+ .filter (SetX .containsAll (values ))
72
+ .orElseThrow (IllegalStateException ::new );
73
+ assertTrue (actual .containsAll (values ));
74
+ }
75
+
50
76
@ Test
51
77
public void checkAdd () {
52
78
int value = 3 ;
@@ -55,6 +81,16 @@ public void checkAdd() {
55
81
assertTrue (addValue .test (numbers ));
56
82
}
57
83
84
+ @ Test
85
+ public void checkAddOptional () {
86
+ double value = 3.1 ;
87
+ Set <Number > numbers = new HashSet <>();
88
+ Set <Number > actual = Optional .of (numbers )
89
+ .filter (SetX .add (value ))
90
+ .orElseThrow (IllegalStateException ::new );
91
+ assertTrue (actual .contains (value ));
92
+ }
93
+
58
94
@ Test
59
95
public void checkAddAll () {
60
96
int value = 4 ;
@@ -65,6 +101,18 @@ public void checkAddAll() {
65
101
assertTrue (addAllValues .test (numbers ));
66
102
}
67
103
104
+ @ Test
105
+ public void checkAddAllOptional () {
106
+ double value = 4.1 ;
107
+ Set <Number > numbers = new HashSet <>();
108
+ Set <Double > values = new HashSet <>();
109
+ values .add (value );
110
+ Set <Number > actual = Optional .of (numbers )
111
+ .filter (SetX .addAll (values ))
112
+ .orElseThrow (IllegalStateException ::new );
113
+ assertTrue (actual .containsAll (values ));
114
+ }
115
+
68
116
@ Test
69
117
public void checkOnlyAdd () {
70
118
int value = 5 ;
@@ -74,6 +122,16 @@ public void checkOnlyAdd() {
74
122
assertTrue (numbers .contains (value ));
75
123
}
76
124
125
+ @ Test
126
+ public void checkOnlyAddOptional () {
127
+ double value = 5.1 ;
128
+ Set <Number > numbers = new HashSet <>();
129
+ Set <Number > actual = Optional .of (numbers )
130
+ .map (OptionalX .peek (SetX .onlyAdd (value )))
131
+ .orElseThrow (IllegalStateException ::new );
132
+ assertTrue (actual .contains (value ));
133
+ }
134
+
77
135
@ Test
78
136
public void checkOnlyAddAll () {
79
137
int value = 6 ;
@@ -85,6 +143,18 @@ public void checkOnlyAddAll() {
85
143
assertTrue (numbers .containsAll (values ));
86
144
}
87
145
146
+ @ Test
147
+ public void checkOnlyAddAllOptional () {
148
+ double value = 6.1 ;
149
+ Set <Number > numbers = new HashSet <>();
150
+ Set <Double > values = new HashSet <>();
151
+ values .add (value );
152
+ Set <Number > actual = Optional .of (numbers )
153
+ .map (OptionalX .peek (SetX .onlyAddAll (values )))
154
+ .orElseThrow (IllegalStateException ::new );
155
+ assertTrue (actual .containsAll (values ));
156
+ }
157
+
88
158
@ Test
89
159
public void checkRemove () {
90
160
int value = 7 ;
@@ -94,6 +164,17 @@ public void checkRemove() {
94
164
assertTrue (removeValue .test (numbers ));
95
165
}
96
166
167
+ @ Test
168
+ public void checkRemoveOptional () {
169
+ double value = 7.1 ;
170
+ Set <Number > numbers = new HashSet <>();
171
+ numbers .add (value );
172
+ Set <Number > actual = Optional .of (numbers )
173
+ .filter (SetX .remove (value ))
174
+ .orElseThrow (IllegalStateException ::new );
175
+ assertFalse (actual .contains (value ));
176
+ }
177
+
97
178
@ Test
98
179
public void checkRemoveAll () {
99
180
int value = 8 ;
@@ -105,6 +186,19 @@ public void checkRemoveAll() {
105
186
assertTrue (removeAllValues .test (numbers ));
106
187
}
107
188
189
+ @ Test
190
+ public void checkRemoveAllOptional () {
191
+ double value = 8.1 ;
192
+ Set <Number > numbers = new HashSet <>();
193
+ numbers .add (value );
194
+ Set <Double > values = new HashSet <>();
195
+ values .add (value );
196
+ Set <Number > actual = Optional .of (numbers )
197
+ .filter (SetX .removeAll (values ))
198
+ .orElseThrow (IllegalStateException ::new );
199
+ assertFalse (actual .containsAll (values ));
200
+ }
201
+
108
202
@ Test
109
203
public void checkOnlyRemove () {
110
204
int value = 9 ;
@@ -115,6 +209,17 @@ public void checkOnlyRemove() {
115
209
assertFalse (numbers .contains (value ));
116
210
}
117
211
212
+ @ Test
213
+ public void checkOnlyRemoveOptional () {
214
+ double value = 9.1 ;
215
+ Set <Number > numbers = new HashSet <>();
216
+ numbers .add (value );
217
+ Set <Number > actual = Optional .of (numbers )
218
+ .map (OptionalX .peek (SetX .onlyRemove (value )))
219
+ .orElseThrow (IllegalStateException ::new );
220
+ assertFalse (actual .contains (value ));
221
+ }
222
+
118
223
@ Test
119
224
public void checkOnlyRemoveAll () {
120
225
int value = 10 ;
@@ -127,6 +232,19 @@ public void checkOnlyRemoveAll() {
127
232
assertFalse (numbers .containsAll (values ));
128
233
}
129
234
235
+ @ Test
236
+ public void checkOnlyRemoveAllOptional () {
237
+ double value = 10.1 ;
238
+ Set <Number > numbers = new HashSet <>();
239
+ numbers .add (value );
240
+ Set <Double > values = new HashSet <>();
241
+ values .add (value );
242
+ Set <Number > actual = Optional .of (numbers )
243
+ .map (OptionalX .peek (SetX .onlyRemoveAll (values )))
244
+ .orElseThrow (IllegalStateException ::new );
245
+ assertFalse (actual .containsAll (values ));
246
+ }
247
+
130
248
@ Test
131
249
public void checkRetainAll () {
132
250
int value = 11 ;
@@ -138,6 +256,19 @@ public void checkRetainAll() {
138
256
assertFalse (retainAllValues .test (numbers ));
139
257
}
140
258
259
+ @ Test (expected = NullPointerException .class )
260
+ public void checkRetainAllOptional () {
261
+ double value = 11.1 ;
262
+ Set <Number > numbers = new HashSet <>();
263
+ numbers .add (value );
264
+ Set <Double > values = new HashSet <>();
265
+ values .add (value );
266
+ Set <Number > actual = Optional .of (numbers )
267
+ .filter (SetX .retainAll (values ))
268
+ .orElseThrow (NullPointerException ::new );
269
+ assertNull (actual );
270
+ }
271
+
141
272
@ Test
142
273
public void checkOnlyRetainAll () {
143
274
int value = 12 ;
@@ -150,6 +281,19 @@ public void checkOnlyRetainAll() {
150
281
assertTrue (numbers .containsAll (values ));
151
282
}
152
283
284
+ @ Test
285
+ public void checkOnlyRetainAllOptional () {
286
+ double value = 12.1 ;
287
+ Set <Number > numbers = new HashSet <>();
288
+ numbers .add (value );
289
+ Set <Double > values = new HashSet <>();
290
+ values .add (value );
291
+ Set <Number > actual = Optional .of (numbers )
292
+ .map (OptionalX .peek (SetX .onlyRetainAll (values )))
293
+ .orElseThrow (IllegalStateException ::new );
294
+ assertTrue (actual .containsAll (values ));
295
+ }
296
+
153
297
@ Test
154
298
public void checkToArray () {
155
299
int value = 13 ;
@@ -159,6 +303,17 @@ public void checkToArray() {
159
303
assertArrayEquals (new Integer []{value }, toIntegerArray .apply (numbers ));
160
304
}
161
305
306
+ @ Test
307
+ public void checkToArrayOptional () {
308
+ double value = 13.1 ;
309
+ Set <Number > numbers = new HashSet <>();
310
+ numbers .add (value );
311
+ Number [] actual = Optional .of (numbers )
312
+ .map (SetX .toArray (new Double [0 ]))
313
+ .orElseThrow (IllegalStateException ::new );
314
+ assertArrayEquals (new Double []{value }, actual );
315
+ }
316
+
162
317
@ Test
163
318
public void checkToArrayWithGenerator () {
164
319
int value = 14 ;
@@ -168,6 +323,17 @@ public void checkToArrayWithGenerator() {
168
323
assertArrayEquals (new Integer []{value }, toIntegerArray .apply (numbers ));
169
324
}
170
325
326
+ @ Test
327
+ public void checkToArrayWithGeneratorOptional () {
328
+ double value = 14.1 ;
329
+ Set <Number > numbers = new HashSet <>();
330
+ numbers .add (value );
331
+ Number [] actual = Optional .of (numbers )
332
+ .map (SetX .toArray (Double []::new ))
333
+ .orElseThrow (IllegalStateException ::new );
334
+ assertArrayEquals (new Double []{value }, actual );
335
+ }
336
+
171
337
@ Test
172
338
public void checkEquals () {
173
339
int value = 15 ;
@@ -178,4 +344,17 @@ public void checkEquals() {
178
344
Predicate <Set <? extends Number >> equalsToValues = SetX .equalsTo (values );
179
345
assertTrue (equalsToValues .test (numbers ));
180
346
}
347
+
348
+ @ Test
349
+ public void checkEqualsOptional () {
350
+ double value = 15.1 ;
351
+ Set <Number > numbers = new HashSet <>();
352
+ numbers .add (value );
353
+ Set <Double > values = new HashSet <>();
354
+ values .add (value );
355
+ Set <Number > actual = Optional .of (numbers )
356
+ .filter (SetX .equalsTo (values ))
357
+ .orElseThrow (IllegalStateException ::new );
358
+ assertEquals (values , actual );
359
+ }
181
360
}
0 commit comments