Skip to content

Commit 4b731a7

Browse files
committed
TC for size and maxResults
See spring-projects#3089
1 parent 0e5af90 commit 4b731a7

File tree

1 file changed

+68
-1
lines changed

1 file changed

+68
-1
lines changed

src/test/java/org/springframework/data/elasticsearch/client/elc/RequestConverterTest.java

+68-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616
package org.springframework.data.elasticsearch.client.elc;
1717

18-
import static org.assertj.core.api.Assertions.*;
18+
import static org.assertj.core.api.Assertions.assertThat;
1919

2020
import co.elastic.clients.json.jackson.JacksonJsonpMapper;
2121

@@ -24,6 +24,7 @@
2424
import org.junit.jupiter.api.DisplayName;
2525
import org.junit.jupiter.api.Test;
2626
import org.springframework.data.annotation.Id;
27+
import org.springframework.data.domain.Pageable;
2728
import org.springframework.data.elasticsearch.annotations.Document;
2829
import org.springframework.data.elasticsearch.annotations.Field;
2930
import org.springframework.data.elasticsearch.annotations.FieldType;
@@ -89,6 +90,72 @@ void refreshSetByDeleteRequest() {
8990
assertThat(deleteByQueryRequest.refresh()).isTrue();
9091
}
9192

93+
@Test
94+
@DisplayName("When maxResults is set (size < maxResults), pageSize should be the minimum of maxResults and pageable size")
95+
void searchRequestPageSizeSmallerThanMaxResults() {
96+
var size = 123;
97+
var maxResults = size * 12;
98+
99+
var query = StringQuery.builder("""
100+
{
101+
"match_all":{}
102+
}
103+
""")
104+
.withPageable(Pageable.ofSize(size))
105+
.withMaxResults(maxResults)
106+
.build();
107+
108+
var searchRequest = requestConverter.searchRequest(query, null, SampleEntity.class, IndexCoordinates.of("foo"), false, false, null);
109+
var actualPageSize = searchRequest.size();
110+
111+
assertThat(actualPageSize).isEqualTo(size);
112+
assertThat(actualPageSize).isNotEqualTo(maxResults);
113+
}
114+
115+
@Test
116+
@DisplayName("When maxResults is set (size == maxResults), pageSize should be equal to maxResults and pageable size")
117+
void searchRequestPageSizeEqualToMaxResults() {
118+
var pageSize = 123;
119+
var maxResults = pageSize;
120+
121+
var query = StringQuery.builder("""
122+
{
123+
"match_all":{}
124+
}
125+
""")
126+
.withPageable(Pageable.ofSize(pageSize))
127+
.withMaxResults(maxResults)
128+
.build();
129+
130+
var searchRequest = requestConverter.searchRequest(query, null, SampleEntity.class, IndexCoordinates.of("foo"), false, false, null);
131+
var actualPageSize = searchRequest.size();
132+
133+
assertThat(actualPageSize).isEqualTo(pageSize);
134+
assertThat(actualPageSize).isEqualTo(maxResults);
135+
}
136+
137+
@Test
138+
@DisplayName("When maxResults is set (size > maxResults), pageSize should be the minimum of maxResults and pageable size")
139+
void searchRequestPageSizeLargerThanMaxResults() {
140+
var pageSize = 123;
141+
var maxResults = 99;
142+
143+
var query = StringQuery.builder("""
144+
{
145+
"match_all":{}
146+
}
147+
""")
148+
.withPageable(Pageable.ofSize(pageSize))
149+
.withMaxResults(maxResults)
150+
.build();
151+
152+
var searchRequest = requestConverter.searchRequest(query, null, SampleEntity.class, IndexCoordinates.of("foo"), false, false, null);
153+
var actualPageSize = searchRequest.size();
154+
155+
assertThat(actualPageSize).isNotEqualTo(pageSize);
156+
assertThat(actualPageSize).isEqualTo(maxResults);
157+
}
158+
92159
@Document(indexName = "does-not-matter")
93160
static class SampleEntity {
94161
@Nullable

0 commit comments

Comments
 (0)