Skip to content
This repository was archived by the owner on Nov 23, 2023. It is now read-only.

Commit 3ded776

Browse files
committed
Fixes #8
Create QueueX
1 parent 6aacefe commit 3ded776

File tree

2 files changed

+81
-0
lines changed

2 files changed

+81
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package alexengrig.lambdax.collection;
2+
3+
import java.util.Queue;
4+
import java.util.function.Consumer;
5+
import java.util.function.Predicate;
6+
7+
/**
8+
* This utility class contains useful lambdas for {@link Queue}
9+
*
10+
* @author Grig Alex
11+
* @see Queue
12+
* @see Consumer
13+
* @see Predicate
14+
* @since 0.1.0
15+
*/
16+
public final class QueueX {
17+
private QueueX() {
18+
}
19+
20+
public static <E> Predicate<Queue<? super E>> add(E item) {
21+
return q -> q.add(item);
22+
}
23+
24+
public static <E> Consumer<Queue<? super E>> onlyAdd(E item) {
25+
return q -> q.add(item);
26+
}
27+
28+
public static <E> Predicate<Queue<? super E>> offer(E item) {
29+
return q -> q.offer(item);
30+
}
31+
32+
public static <E> Consumer<Queue<? super E>> onlyOffer(E item) {
33+
return q -> q.offer(item);
34+
}
35+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package alexengrig.lambdax.collection;
2+
3+
import org.junit.Test;
4+
5+
import java.util.ArrayDeque;
6+
import java.util.Queue;
7+
import java.util.function.Consumer;
8+
import java.util.function.Predicate;
9+
10+
import static org.junit.Assert.assertTrue;
11+
12+
public class QueueXTest {
13+
@Test
14+
public void checkAdd() {
15+
int value = 1;
16+
Queue<Number> numbers = new ArrayDeque<>();
17+
Predicate<Queue<? super Number>> addValue = QueueX.add(value);
18+
assertTrue(addValue.test(numbers));
19+
}
20+
21+
@Test
22+
public void checkOnlyAdd() {
23+
int value = 2;
24+
Queue<Number> numbers = new ArrayDeque<>();
25+
Consumer<Queue<? super Number>> onlyAddValue = QueueX.onlyAdd(value);
26+
onlyAddValue.accept(numbers);
27+
assertTrue(numbers.contains(value));
28+
}
29+
30+
@Test
31+
public void checkOffer() {
32+
int value = 3;
33+
Queue<Number> numbers = new ArrayDeque<>();
34+
Predicate<Queue<? super Number>> offerValue = QueueX.offer(value);
35+
assertTrue(offerValue.test(numbers));
36+
}
37+
38+
@Test
39+
public void checkOnlyOffer() {
40+
int value = 4;
41+
Queue<Number> numbers = new ArrayDeque<>();
42+
Consumer<Queue<? super Number>> onlyOfferValue = QueueX.onlyOffer(value);
43+
onlyOfferValue.accept(numbers);
44+
assertTrue(numbers.contains(value));
45+
}
46+
}

0 commit comments

Comments
 (0)