-
Notifications
You must be signed in to change notification settings - Fork 4
/
CaseInsensitiveLikeApplicationTests.java
74 lines (50 loc) · 1.88 KB
/
CaseInsensitiveLikeApplicationTests.java
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
package de.schauderhaft.caseinsensitivelike;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jdbc.core.JdbcAggregateTemplate;
import org.springframework.data.relational.core.query.Criteria;
import org.springframework.data.relational.core.query.Query;
import java.util.List;
import static de.schauderhaft.caseinsensitivelike.Demo.*;
import static org.assertj.core.api.Assertions.*;
@SpringBootTest
class CaseInsensitiveLikeApplicationTests {
@Autowired
JdbcAggregateTemplate jdbc;
@BeforeEach
void setup() {
jdbc.deleteAll(Demo.class);
jdbc.saveAll(List.of(demo("ONE"), demo("drone"), demo("donE"), demo("other")));
}
@Test
void likeWithIgnoreCaseWorksAsExpected() {
assertThat(getList()).extracting(d -> d.name()).containsExactlyInAnyOrder("ONE", "drone", "donE");
}
@Test
void pageableInQuery() {
assertThat(getPage1(Pageable.ofSize(2))).hasSize(3); // this is actually not expected!
}
@Test
void separatePageable() {
assertThat(getPage2(Pageable.ofSize(2))).hasSize(2);
}
Iterable<Demo> getList() {
Criteria criteria = Criteria.where("name").like("%" + "One" + "%").ignoreCase(true);
Query query = Query.query(criteria);
return jdbc.findAll(query, Demo.class);
}
Iterable<Demo> getPage1(Pageable pageable) {
Criteria criteria = Criteria.where("name").like("%" + "ne" + "%").ignoreCase(true);
Query query = Query.query(criteria);
query.with(pageable);
return jdbc.findAll(query, Demo.class);
}
Iterable<Demo> getPage2(Pageable pageable) {
Criteria criteria = Criteria.where("name").like("%" + "ne" + "%").ignoreCase(true);
Query query = Query.query(criteria);
return jdbc.findAll(query, Demo.class, pageable);
}
}