Skip to content

Commit ee176da

Browse files
committed
add tests
1 parent 867adb0 commit ee176da

1 file changed

Lines changed: 98 additions & 0 deletions

File tree

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
package it.aboutbits.springboot.toolbox.web.response;
2+
3+
import org.junit.jupiter.api.Test;
4+
import org.springframework.data.domain.PageImpl;
5+
import org.springframework.data.domain.PageRequest;
6+
7+
import java.util.List;
8+
import java.util.function.Function;
9+
10+
import static org.assertj.core.api.Assertions.assertThat;
11+
12+
class PagedResponseTest {
13+
@Test
14+
void shouldReturnPagedResponseWithDataAndMeta_forSingleParameterOfMethod() {
15+
// given
16+
var content = List.of("item1", "item2", "item3");
17+
var page = new PageImpl<>(content, PageRequest.of(1, 3), 10);
18+
19+
// when
20+
var pagedResponse = PagedResponse.of(page);
21+
22+
// then
23+
assertThat(pagedResponse).isNotNull();
24+
assertThat(pagedResponse.data()).isEqualTo(content);
25+
assertThat(pagedResponse.meta().pagination().page()).isEqualTo(1);
26+
assertThat(pagedResponse.meta().pagination().size()).isEqualTo(3);
27+
assertThat(pagedResponse.meta().pagination().totalElements()).isEqualTo(10);
28+
}
29+
30+
@Test
31+
void shouldReturnPagedResponseWithMappedDataAndMeta_forTwoParameterOfMethod() {
32+
// given
33+
var content = List.of(1, 2, 3);
34+
var page = new PageImpl<>(content, PageRequest.of(2, 5), 15);
35+
Function<Integer, String> converter = Object::toString;
36+
37+
// when
38+
var pagedResponse = PagedResponse.of(page, converter);
39+
40+
// then
41+
assertThat(pagedResponse).isNotNull();
42+
assertThat(pagedResponse.data()).isEqualTo(List.of("1", "2", "3"));
43+
assertThat(pagedResponse.meta().pagination().page()).isEqualTo(2);
44+
assertThat(pagedResponse.meta().pagination().size()).isEqualTo(5);
45+
assertThat(pagedResponse.meta().pagination().totalElements()).isEqualTo(15);
46+
}
47+
48+
@Test
49+
void shouldHandleEmptyPageCorrectly() {
50+
// given
51+
var page = new PageImpl<>(List.of(), PageRequest.of(0, 10), 0);
52+
53+
// when
54+
var pagedResponse = PagedResponse.of(page);
55+
56+
// then
57+
assertThat(pagedResponse).isNotNull();
58+
assertThat(pagedResponse.data()).isEmpty();
59+
assertThat(pagedResponse.meta().pagination().page()).isZero();
60+
assertThat(pagedResponse.meta().pagination().size()).isEqualTo(10);
61+
assertThat(pagedResponse.meta().pagination().totalElements()).isZero();
62+
}
63+
64+
@Test
65+
void shouldHandlePageWithCustomConverterCorrectly() {
66+
// given
67+
var content = List.of(10, 20, 30);
68+
var page = new PageImpl<>(content, PageRequest.of(3, 3), 24);
69+
Function<Integer, String> converter = val -> "Value-" + val;
70+
71+
// when
72+
var pagedResponse = PagedResponse.of(page, converter);
73+
74+
// then
75+
assertThat(pagedResponse).isNotNull();
76+
assertThat(pagedResponse.data()).isEqualTo(List.of("Value-10", "Value-20", "Value-30"));
77+
assertThat(pagedResponse.meta().pagination().page()).isEqualTo(3);
78+
assertThat(pagedResponse.meta().pagination().size()).isEqualTo(3);
79+
assertThat(pagedResponse.meta().pagination().totalElements()).isEqualTo(24);
80+
}
81+
82+
@Test
83+
void shouldHandleEmptyPageWithCustomConverterCorrectly() {
84+
// given
85+
var page = new PageImpl<Integer>(List.of(), PageRequest.of(2, 4), 0);
86+
Function<Integer, String> converter = val -> "Value-" + val;
87+
88+
// when
89+
var pagedResponse = PagedResponse.of(page, converter);
90+
91+
// then
92+
assertThat(pagedResponse).isNotNull();
93+
assertThat(pagedResponse.data()).isEmpty();
94+
assertThat(pagedResponse.meta().pagination().page()).isEqualTo(2);
95+
assertThat(pagedResponse.meta().pagination().size()).isEqualTo(4);
96+
assertThat(pagedResponse.meta().pagination().totalElements()).isZero();
97+
}
98+
}

0 commit comments

Comments
 (0)