44
55import org .couchbase .quickstart .springdata .models .Airline ;
66import org .couchbase .quickstart .springdata .models .RestResponsePage ;
7+ import org .couchbase .quickstart .springdata .services .AirlineService ;
78import org .junit .jupiter .api .AfterEach ;
89import org .junit .jupiter .api .BeforeEach ;
910import org .junit .jupiter .api .Test ;
1213import org .springframework .boot .test .context .SpringBootTest ;
1314import org .springframework .boot .test .web .client .TestRestTemplate ;
1415import org .springframework .core .ParameterizedTypeReference ;
16+ import org .springframework .dao .DataRetrievalFailureException ;
1517import org .springframework .http .HttpMethod ;
1618import org .springframework .http .HttpStatus ;
1719import org .springframework .http .ResponseEntity ;
1820
21+ import com .couchbase .client .core .error .DocumentNotFoundException ;
22+
1923@ SpringBootTest (webEnvironment = SpringBootTest .WebEnvironment .RANDOM_PORT )
2024class AirlineIntegrationTest {
2125
@@ -25,18 +29,45 @@ class AirlineIntegrationTest {
2529 @ Autowired
2630 private TestRestTemplate restTemplate ;
2731
32+ @ Autowired
33+ private AirlineService airlineService ;
34+
2835 @ BeforeEach
2936 void setUp () {
30- restTemplate .delete ("http://localhost:" + port + "/api/v1/airline/airline_create" );
31- restTemplate .delete ("http://localhost:" + port + "/api/v1/airline/airline_update" );
32- restTemplate .delete ("http://localhost:" + port + "/api/v1/airline/airline_delete" );
37+ try {
38+ if (airlineService .getAirlineById ("airline_create" ).isPresent ()) {
39+ restTemplate .delete ("http://localhost:" + port + "/api/v1/airline/airline_create" );
40+ }
41+ if (airlineService .getAirlineById ("airline_update" ).isPresent ()) {
42+ restTemplate .delete ("http://localhost:" + port + "/api/v1/airline/airline_update" );
43+ }
44+ if (airlineService .getAirlineById ("airline_delete" ).isPresent ()) {
45+ restTemplate .delete ("http://localhost:" + port + "/api/v1/airline/airline_delete" );
46+ }
47+ } catch (DocumentNotFoundException | DataRetrievalFailureException e ) {
48+ System .out .println ("Document not found during setup" );
49+ } catch (Exception e ) {
50+ System .out .println ("Error deleting test data during setup" );
51+ }
3352 }
3453
3554 @ AfterEach
3655 void tearDown () {
37- restTemplate .delete ("http://localhost:" + port + "/api/v1/airline/airline_create" );
38- restTemplate .delete ("http://localhost:" + port + "/api/v1/airline/airline_update" );
39- restTemplate .delete ("http://localhost:" + port + "/api/v1/airline/airline_delete" );
56+ try {
57+ if (airlineService .getAirlineById ("airline_create" ).isPresent ()) {
58+ restTemplate .delete ("http://localhost:" + port + "/api/v1/airline/airline_create" );
59+ }
60+ if (airlineService .getAirlineById ("airline_update" ).isPresent ()) {
61+ restTemplate .delete ("http://localhost:" + port + "/api/v1/airline/airline_update" );
62+ }
63+ if (airlineService .getAirlineById ("airline_delete" ).isPresent ()) {
64+ restTemplate .delete ("http://localhost:" + port + "/api/v1/airline/airline_delete" );
65+ }
66+ } catch (DocumentNotFoundException | DataRetrievalFailureException e ) {
67+ System .out .println ("Document not found during teardown" );
68+ } catch (Exception e ) {
69+ System .out .println ("Error deleting test data during teardown" );
70+ }
4071 }
4172
4273 @ Test
@@ -130,33 +161,34 @@ void testDeleteAirline() {
130161 @ Test
131162 void testListAirlines () {
132163 ResponseEntity <RestResponsePage <Airline >> response = restTemplate .exchange (
133- "http://localhost:" + port + "/api/v1/airline/list" , HttpMethod .GET , null ,
134- new ParameterizedTypeReference <RestResponsePage <Airline >>() {
135- });
164+ "http://localhost:" + port + "/api/v1/airline/list" , HttpMethod .GET , null ,
165+ new ParameterizedTypeReference <RestResponsePage <Airline >>() {
166+ });
136167 assertThat (response .getStatusCode ()).isEqualTo (HttpStatus .OK );
137-
168+
138169 RestResponsePage <Airline > airlines = response .getBody ();
139170 assertThat (airlines ).isNotNull ();
140171 assertThat (airlines .getSize ()).isEqualTo (10 );
141172 }
142173
143174 @ Test
144175 void testListAirlinesByCountry () {
145- // Check that if it contains
146- // airline_10226{"id":10226,"type":"airline","name":"Atifly","iata":"A1","icao":"A1F","callsign":"atifly","country":"United
147- // States"}
148- String country = "United States" ;
149- ResponseEntity <RestResponsePage <Airline >> response = restTemplate .exchange (
150- "http://localhost:" + port + "/api/v1/airline/country/" + country ,
151- HttpMethod .GET , null , new ParameterizedTypeReference <RestResponsePage <Airline >>() {
152- });
153- assertThat (response .getStatusCode ()).isEqualTo (HttpStatus .OK );
176+ // Check that if it contains
177+ // airline_10226{"id":10226,"type":"airline","name":"Atifly","iata":"A1","icao":"A1F","callsign":"atifly","country":"United
178+ // States"}
179+ String country = "United States" ;
180+ ResponseEntity <RestResponsePage <Airline >> response = restTemplate .exchange (
181+ "http://localhost:" + port + "/api/v1/airline/country/" + country ,
182+ HttpMethod .GET , null , new ParameterizedTypeReference <RestResponsePage <Airline >>() {
183+ });
184+ assertThat (response .getStatusCode ()).isEqualTo (HttpStatus .OK );
154185
155186 RestResponsePage <Airline > airlines = response .getBody ();
156- Airline airline = airlines .stream ().filter (a -> a .getId ().equals ("airline_10226" )).findFirst ().orElse (null );
187+ assert airlines != null ;
188+ Airline airline = airlines .stream ().filter (a -> a .getId ().equals ("airline_10226" )).findFirst ().orElse (null );
157189 assertThat (airline ).isNotNull ();
158190
159- Airline expectedAirline = Airline .builder ()
191+ Airline expectedAirline = Airline .builder ()
160192 .id ("airline_10226" )
161193 .type ("airline" )
162194 .name ("Atifly" )
@@ -165,10 +197,10 @@ void testListAirlinesByCountry() {
165197 .callsign ("atifly" )
166198 .country ("United States" )
167199 .build ();
168- assertThat (airline ).isEqualTo (expectedAirline );
200+ assertThat (airline ).isEqualTo (expectedAirline );
169201
170- // {"id":1191,"type":"airline","name":"Air
171- // Austral","iata":"UU","icao":"REU","callsign":"REUNION","country":"France"}
202+ // {"id":1191,"type":"airline","name":"Air
203+ // Austral","iata":"UU","icao":"REU","callsign":"REUNION","country":"France"}
172204
173205 country = "France" ;
174206 ResponseEntity <RestResponsePage <Airline >> response2 = restTemplate .exchange (
@@ -178,9 +210,10 @@ void testListAirlinesByCountry() {
178210 assertThat (response2 .getStatusCode ()).isEqualTo (HttpStatus .OK );
179211
180212 RestResponsePage <Airline > airlines2 = response2 .getBody ();
181- Airline airline2 = airlines2 .stream ().filter (a -> a .getId ().equals ("airline_1191" )).findFirst ().orElse (null );
213+ assert airlines2 != null ;
214+ Airline airline2 = airlines2 .stream ().filter (a -> a .getId ().equals ("airline_1191" )).findFirst ().orElse (null );
182215
183- Airline expectedAirline2 = Airline .builder ()
216+ Airline expectedAirline2 = Airline .builder ()
184217 .id ("airline_1191" )
185218 .type ("airline" )
186219 .name ("Air Austral" )
@@ -189,11 +222,58 @@ void testListAirlinesByCountry() {
189222 .callsign ("REUNION" )
190223 .country ("France" )
191224 .build ();
192- assertThat (airline2 ).isEqualTo (expectedAirline2 );
225+ assertThat (airline2 ).isEqualTo (expectedAirline2 );
193226
194227 }
195228
196229 // @Test
197230 // void testListAirlinesByDestinationAirport() {
231+ // // Check that if it contains
232+ // //
233+ // airline_10226{"id":10226,"type":"airline","name":"Atifly","iata":"A1","icao":"A1F","callsign":"atifly","country":"United
234+ // // States"}
235+ // String destinationAirport = "LAX";
236+ // ResponseEntity<RestResponsePage<Airline>> response = restTemplate.exchange(
237+ // "http://localhost:" + port + "/api/v1/airline/destinationAirport/" +
238+ // destinationAirport,
239+ // HttpMethod.GET, null, new
240+ // ParameterizedTypeReference<RestResponsePage<Airline>>() {
241+ // });
242+ // assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
243+
244+ // RestResponsePage<Airline> airlines = response.getBody();
245+ // assert airlines != null;
246+ // Airline airline = airlines.stream().filter(a ->
247+ // a.getId().equals("airline_10226")).findFirst()
248+ // .orElse(null);
249+ // assertThat(airline).isNotNull();
250+
251+ // Airline expectedAirline =
252+ // Airline.builder().id("airline_10226").type("airline").name("Atifly")
253+ // .iata("A1").icao("A1F").callsign("atifly").country("United States").build();
254+ // assertThat(airline).isEqualTo(expectedAirline);
255+
256+ // // {"id":1191,"type":"airline","name":"Air
257+ // // Austral","iata":"UU","icao":"REU","callsign":"REUNION","country":"France"}
258+
259+ // destinationAirport = "LAX";
260+ // ResponseEntity<RestResponsePage<Airline>> response2 = restTemplate.exchange(
261+ // "http://localhost:" + port + "/api/v1/airline/destinationAirport/" +
262+ // destinationAirport,
263+ // HttpMethod.GET, null, new
264+ // ParameterizedTypeReference<RestResponsePage<Airline>>() {
265+ // });
266+ // assertThat(response2.getStatusCode()).isEqualTo(HttpStatus.OK);
267+
268+ // RestResponsePage<Airline> airlines2 = response2.getBody();
269+ // assert airlines2 != null;
270+ // Airline airline2 = airlines2.stream().filter(a ->
271+ // a.getId().equals("airline_1191")).findFirst()
272+ // .orElse(null);
273+
274+ // Airline expectedAirline2 =
275+ // Airline.builder().id("airline_1191").type("airline").name("Air Austral")
276+ // .iata("UU").icao("REU").callsign("REUNION").country("France").build();
277+ // assertThat(airline2).isEqualTo(expectedAirline2);
198278 // }
199279}
0 commit comments