-
Notifications
You must be signed in to change notification settings - Fork 183
Expand file tree
/
Copy pathStream_01_Test.java
More file actions
98 lines (70 loc) · 2.79 KB
/
Stream_01_Test.java
File metadata and controls
98 lines (70 loc) · 2.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package java17.ex01;
import static org.hamcrest.Matchers.anyOf;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.everyItem;
import static org.hamcrest.Matchers.greaterThan;
import static org.hamcrest.Matchers.hasProperty;
import static org.hamcrest.Matchers.hasSize;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import org.junit.Test;
import java17.data.Data;
import java17.data.domain.Order;
import java17.data.domain.Pizza;
/**
* Exercice 01 - Recherche
*/
public class Stream_01_Test {
@Test
public void test_stream_filter() throws Exception {
List<Pizza> pizzas = new Data().getPizzas();
// TODO récupérer la liste des pizzas dont le prix est >= 1300
List<Pizza> result = pizzas.stream().filter(p -> p.getPrice() >= 1300).toList();
assertThat(result, hasSize(3));
assertThat(result, everyItem(hasProperty("price", anyOf(equalTo(1300), greaterThan(1300)))));
}
@Test
public void test_stream_filter_count() throws Exception {
List<Pizza> pizzas = new Data().getPizzas();
// TODO compter le nombre de pizzas dont le prix est >= 1300
long result = pizzas.stream().filter(p->p.getPrice() >= 1300).count();
assertThat(result, is(3L));
}
@Test
public void test_stream_anyMatch() throws Exception {
List<Pizza> pizzas = new Data().getPizzas();
// TODO valider si au moins une pizza à un prix >= 1300
Boolean result1 = pizzas.stream().anyMatch(p->p.getPrice() >= 1300);
// TODO valider si au moins une pizza à un prix >= 2000
Boolean result2 = pizzas.stream().anyMatch(p->p.getPrice() >= 2000);;
assertThat(result1, is(true));
assertThat(result2, is(false));
}
@Test
public void test_stream_allMatch() throws Exception {
List<Pizza> pizzas = new Data().getPizzas();
// TODO valider que toutes les pizzas ont un prix >= 1300
Boolean result1 = pizzas.stream().allMatch(p->p.getPrice() >= 1300);
// TODO valider que toutes les pizzas ont un prix >= 900
Boolean result2 = pizzas.stream().allMatch(p->p.getPrice() >= 900);;
assertThat(result1, is(false));
assertThat(result2, is(true));
}
@Test
public void test_stream_noneMatch() throws Exception {
List<Pizza> pizzas = new Data().getPizzas();
// TODO valider qu'aucune pizza n'a un prix >= 2000
Boolean result1 = pizzas.stream().noneMatch(p->p.getPrice() >= 2000);
assertThat(result1, is(true));
}
@Test
public void test_stream_findFirst() throws Exception {
List<Order> orders = new Data().getOrders();
// TODO récupérer une commande faite par un client dont le prénom est "Sophie"
Optional<Order> result = orders.stream().filter(o->o.getCustomer().getFirstname().equals("Sophie")).findFirst();
assertThat(result.isPresent(), is(false));
}
}