Skip to content

Commit b557d2c

Browse files
committed
Refactor integration tests to use RestResponsePage
1 parent a460ae4 commit b557d2c

File tree

4 files changed

+63
-23
lines changed

4 files changed

+63
-23
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package org.couchbase.quickstart.springdata.models;
2+
3+
import com.fasterxml.jackson.annotation.JsonCreator;
4+
import com.fasterxml.jackson.annotation.JsonProperty;
5+
import com.fasterxml.jackson.databind.JsonNode;
6+
import org.springframework.data.domain.PageImpl;
7+
import org.springframework.data.domain.PageRequest;
8+
import org.springframework.data.domain.Pageable;
9+
10+
import java.util.ArrayList;
11+
import java.util.List;
12+
13+
public class RestResponsePage<T> extends PageImpl<T> {
14+
@JsonCreator(mode = JsonCreator.Mode.PROPERTIES)
15+
public RestResponsePage(@JsonProperty("content") List<T> content,
16+
@JsonProperty("number") int number,
17+
@JsonProperty("size") int size,
18+
@JsonProperty("totalElements") Long totalElements,
19+
@JsonProperty("pageable") JsonNode pageable,
20+
@JsonProperty("last") boolean last,
21+
@JsonProperty("totalPages") int totalPages,
22+
@JsonProperty("sort") JsonNode sort,
23+
@JsonProperty("first") boolean first,
24+
@JsonProperty("numberOfElements") int numberOfElements) {
25+
26+
super(content, PageRequest.of(number, size), totalElements);
27+
}
28+
29+
public RestResponsePage(List<T> content, Pageable pageable, long total) {
30+
super(content, pageable, total);
31+
}
32+
33+
public RestResponsePage(List<T> content) {
34+
super(content);
35+
}
36+
37+
public RestResponsePage() {
38+
super(new ArrayList<>());
39+
}
40+
}

src/test/java/org/couchbase/quickstart/springdata/controllers/AirlineIntegrationTest.java

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,14 @@
22

33
import static org.assertj.core.api.Assertions.assertThat;
44

5-
import java.util.List;
6-
75
import org.couchbase.quickstart.springdata.models.Airline;
6+
import org.couchbase.quickstart.springdata.models.RestResponsePage;
87
import org.junit.jupiter.api.Test;
98
import org.springframework.beans.factory.annotation.Autowired;
109
import org.springframework.beans.factory.annotation.Value;
1110
import org.springframework.boot.test.context.SpringBootTest;
1211
import org.springframework.boot.test.web.client.TestRestTemplate;
1312
import org.springframework.core.ParameterizedTypeReference;
14-
import org.springframework.data.domain.Page;
1513
import org.springframework.http.HttpMethod;
1614
import org.springframework.http.HttpStatus;
1715
import org.springframework.http.ResponseEntity;
@@ -95,13 +93,13 @@ void testDeleteAirline() {
9593

9694
@Test
9795
void testListAirlines() {
98-
ResponseEntity<Page<Airline>> response = restTemplate.exchange(
96+
ResponseEntity<RestResponsePage<Airline>> response = restTemplate.exchange(
9997
"http://localhost:" + port + "/api/v1/airline/list", HttpMethod.GET, null,
100-
new ParameterizedTypeReference<Page<Airline>>() {
98+
new ParameterizedTypeReference<RestResponsePage<Airline>>() {
10199
});
102100
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
103101

104-
Page<Airline> airlines = response.getBody();
102+
RestResponsePage<Airline> airlines = response.getBody();
105103
assertThat(airlines).isNotNull();
106104
assertThat(airlines.getSize()).isEqualTo(10);
107105

@@ -113,16 +111,16 @@ void testListAirlinesByCountry() {
113111
// airline_10226{"id":10226,"type":"airline","name":"Atifly","iata":"A1","icao":"A1F","callsign":"atifly","country":"United
114112
// States"}
115113
String country = "United States";
116-
ResponseEntity<Page<Airline>> response = restTemplate.exchange(
114+
ResponseEntity<RestResponsePage<Airline>> response = restTemplate.exchange(
117115
"http://localhost:" + port + "/api/v1/airline/country/" + country,
118-
HttpMethod.GET, null, new ParameterizedTypeReference<Page<Airline>>() {
116+
HttpMethod.GET, null, new ParameterizedTypeReference<RestResponsePage<Airline>>() {
119117
});
120118
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
121119

122-
Page<Airline> airlines = response.getBody();
123-
Airline airline = airlines.stream().filter(a -> a.getId().equals("10226")).findFirst().orElse(null);
120+
RestResponsePage<Airline> airlines = response.getBody();
121+
Airline airline = airlines.stream().filter(a -> a.getId().equals("airline_10226")).findFirst().orElse(null);
124122
assertThat(airline).isNotNull();
125-
assertThat(airline.getId()).isEqualTo("10226");
123+
assertThat(airline.getId()).isEqualTo("airline_10226");
126124
assertThat(airline.getType()).isEqualTo("airline");
127125
assertThat(airline.getName()).isEqualTo("Atifly");
128126
assertThat(airline.getIata()).isEqualTo("A1");
@@ -134,16 +132,16 @@ void testListAirlinesByCountry() {
134132
// Austral","iata":"UU","icao":"REU","callsign":"REUNION","country":"France"}
135133

136134
country = "France";
137-
ResponseEntity<Page<Airline>> response2 = restTemplate.exchange(
135+
ResponseEntity<RestResponsePage<Airline>> response2 = restTemplate.exchange(
138136
"http://localhost:" + port + "/api/v1/airline/country/" + country,
139-
HttpMethod.GET, null, new ParameterizedTypeReference<Page<Airline>>() {
137+
HttpMethod.GET, null, new ParameterizedTypeReference<RestResponsePage<Airline>>() {
140138
});
141139
assertThat(response2.getStatusCode()).isEqualTo(HttpStatus.OK);
142140

143-
Page<Airline> airlines2 = response2.getBody();
144-
Airline airline2 = airlines2.stream().filter(a -> a.getId().equals("1191")).findFirst().orElse(null);
141+
RestResponsePage<Airline> airlines2 = response2.getBody();
142+
Airline airline2 = airlines2.stream().filter(a -> a.getId().equals("airline_1191")).findFirst().orElse(null);
145143
assertThat(airline2).isNotNull();
146-
assertThat(airline2.getId()).isEqualTo("1191");
144+
assertThat(airline2.getId()).isEqualTo("airline_1191");
147145
assertThat(airline2.getType()).isEqualTo("airline");
148146
assertThat(airline2.getName()).isEqualTo("Air Austral");
149147
assertThat(airline2.getIata()).isEqualTo("UU");

src/test/java/org/couchbase/quickstart/springdata/controllers/AirportIntegrationTest.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import java.util.List;
66

77
import org.couchbase.quickstart.springdata.models.Airport;
8+
import org.couchbase.quickstart.springdata.models.RestResponsePage;
89
import org.couchbase.quickstart.springdata.models.Airport.Geo;
910
import org.junit.jupiter.api.Test;
1011
import org.springframework.beans.factory.annotation.Autowired;
@@ -98,12 +99,12 @@ void testDeleteAirport() throws Exception {
9899

99100
@Test
100101
void testListAirports() throws Exception {
101-
ResponseEntity<List<Airport>> response = restTemplate.exchange("http://localhost:" + port + "/api/v1/airport/list", HttpMethod.GET, null, new ParameterizedTypeReference<List<Airport>>() {});
102+
ResponseEntity<RestResponsePage<Airport>> response = restTemplate.exchange("http://localhost:" + port + "/api/v1/airport/list", HttpMethod.GET, null, new ParameterizedTypeReference<RestResponsePage<Airport>>() {});
102103
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
103104

104-
List<Airport> airports = response.getBody();
105+
RestResponsePage<Airport> airports = response.getBody();
105106
assertThat(airports).isNotNull();
106-
assertThat(airports.size()).isGreaterThan(100);
107+
assertThat(airports.getTotalElements()).isGreaterThan(100);
107108
}
108109

109110
// @Test

src/test/java/org/couchbase/quickstart/springdata/controllers/RouteIntegrationTest.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import java.util.Collections;
77
import java.util.List;
88

9+
import org.couchbase.quickstart.springdata.models.RestResponsePage;
910
import org.couchbase.quickstart.springdata.models.Route;
1011
import org.junit.jupiter.api.Test;
1112
import org.springframework.beans.factory.annotation.Autowired;
@@ -116,13 +117,13 @@ void testDeleteRoute() {
116117

117118
@Test
118119
void testListRoutes() {
119-
ResponseEntity<List<Route>> response = restTemplate.exchange("http://localhost:" + port + "/api/v1/route/list",
120-
HttpMethod.GET, null, new ParameterizedTypeReference<List<Route>>() {
120+
ResponseEntity<RestResponsePage<Route>> response = restTemplate.exchange("http://localhost:" + port + "/api/v1/route/list",
121+
HttpMethod.GET, null, new ParameterizedTypeReference<RestResponsePage<Route>>() {
121122
});
122123
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
123124

124-
List<Route> routes = response.getBody();
125+
RestResponsePage<Route> routes = response.getBody();
125126
assertThat(routes).isNotNull();
126-
assertThat(routes.size()).isGreaterThan(100);
127+
assertThat(routes.getTotalElements()).isGreaterThan(100);
127128
}
128129
}

0 commit comments

Comments
 (0)