Skip to content

Commit 8ccd33f

Browse files
vominhtriuslpandzic
authored andcommitted
test: Add shouldQueryManyWithPageable in QuerydslJdbcRepositoryTest
1 parent b7506bc commit 8ccd33f

File tree

1 file changed

+40
-14
lines changed

1 file changed

+40
-14
lines changed

infobip-spring-data-jdbc-querydsl/src/test/java/com/infobip/spring/data/jdbc/QuerydslJdbcRepositoryTest.java

Lines changed: 40 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,27 @@
11
package com.infobip.spring.data.jdbc;
22

3-
import static com.infobip.spring.data.jdbc.QPerson.person;
4-
import static com.infobip.spring.data.jdbc.QPersonSettings.personSettings;
5-
import static org.assertj.core.api.BDDAssertions.then;
3+
import static com.infobip.spring.data.jdbc.QPerson.*;
4+
import static com.infobip.spring.data.jdbc.QPersonSettings.*;
5+
import static org.assertj.core.api.BDDAssertions.*;
66

77
import java.time.ZoneOffset;
88
import java.util.List;
99
import java.util.TimeZone;
1010
import java.util.stream.Collectors;
1111

12-
import com.infobip.spring.data.jdbc.extension.CustomQuerydslJdbcRepository;
13-
import com.querydsl.core.types.Projections;
14-
import com.querydsl.sql.SQLQueryFactory;
15-
import lombok.AllArgsConstructor;
1612
import org.junit.jupiter.api.AfterAll;
1713
import org.junit.jupiter.api.BeforeAll;
1814
import org.junit.jupiter.api.Test;
15+
import org.springframework.data.domain.PageRequest;
16+
import org.springframework.data.domain.Sort;
1917
import org.springframework.transaction.annotation.Transactional;
2018

19+
import com.infobip.spring.data.jdbc.extension.CustomQuerydslJdbcRepository;
20+
import com.querydsl.core.types.Projections;
21+
import com.querydsl.sql.SQLQueryFactory;
22+
23+
import lombok.AllArgsConstructor;
24+
2125
@AllArgsConstructor
2226
public class QuerydslJdbcRepositoryTest extends TestBase {
2327

@@ -53,7 +57,8 @@ void shouldStreamAll() {
5357
actual = stream.collect(Collectors.toList());
5458
}
5559

56-
then(actual).usingRecursiveFieldByFieldElementComparator().containsExactlyInAnyOrder(johnDoe, johnyRoe, janeDoe);
60+
then(actual).usingRecursiveFieldByFieldElementComparator()
61+
.containsExactlyInAnyOrder(johnDoe, johnyRoe, janeDoe);
5762
}
5863

5964
@Test
@@ -151,6 +156,27 @@ void shouldQueryMany() {
151156
then(actual).containsOnly(johnDoe);
152157
}
153158

159+
@Test
160+
void shouldQueryManyWithPageable() {
161+
// given
162+
givenSavedPerson("John", "Doe");
163+
givenSavedPerson("Johny", "Roe");
164+
var janeDoe = givenSavedPerson("Jane", "Doe");
165+
givenSavedPerson("John", "Roe");
166+
givenSavedPerson("Janie", "Doe");
167+
var janeStone = givenSavedPerson("Jane", "Stone");
168+
169+
var page = PageRequest.of(0, 2, Sort.by(Sort.Order.asc("firstName")));
170+
171+
var actual = repository.queryMany(sqlQuery -> sqlQuery.from(person)
172+
.where(person.firstName.in("John", "Jane")), page);
173+
174+
then(actual.getSize()).isEqualTo(2);
175+
then(actual.getTotalElements()).isEqualTo(4);
176+
then(actual.getTotalPages()).isEqualTo(2);
177+
then(actual).containsExactlyInAnyOrder(janeDoe, janeStone);
178+
}
179+
154180
@Test
155181
void shouldProject() {
156182

@@ -184,8 +210,8 @@ void shouldUpdate() {
184210

185211
then(actual).isEqualTo(1);
186212
then(repository.findAll()).extracting(Person::firstName)
187-
.containsExactlyInAnyOrder("John", "John", "Jane")
188-
.hasSize(3);
213+
.containsExactlyInAnyOrder("John", "John", "Jane")
214+
.hasSize(3);
189215
}
190216

191217
@Test
@@ -259,7 +285,7 @@ void shouldSupportMultipleConstructors() {
259285
void shouldExtendSimpleQuerydslJdbcRepository() {
260286
// then
261287
then(repository).isInstanceOf(QuerydslJdbcRepository.class)
262-
.isNotInstanceOf(CustomQuerydslJdbcRepository.class);
288+
.isNotInstanceOf(CustomQuerydslJdbcRepository.class);
263289
}
264290

265291
@Transactional
@@ -270,9 +296,9 @@ void springDataAndQuerydslShouldHandleTimeZoneTheSameForSameTimeZone() {
270296

271297
// when
272298
sqlQueryFactory.insert(person)
273-
.columns(person.firstName, person.lastName, person.createdAt)
274-
.values(givenPerson.firstName(), givenPerson.lastName(), givenPerson.createdAt())
275-
.execute();
299+
.columns(person.firstName, person.lastName, person.createdAt)
300+
.values(givenPerson.firstName(), givenPerson.lastName(), givenPerson.createdAt())
301+
.execute();
276302
repository.save(givenPerson);
277303

278304
// then

0 commit comments

Comments
 (0)