Skip to content

Commit 1efbea6

Browse files
committed
fix(validator): migrate from RestTemplate to RestClient
1 parent 87ce714 commit 1efbea6

File tree

2 files changed

+25
-28
lines changed

2 files changed

+25
-28
lines changed

open-api-response-validator/src/test/java/de/sonallux/spotify/validator/AlbumApiValidationTest.java

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,14 @@
33
import com.atlassian.oai.validator.OpenApiInteractionValidator;
44
import com.atlassian.oai.validator.springweb.client.OpenApiValidationClientHttpRequestInterceptor;
55
import org.junit.jupiter.api.BeforeAll;
6-
import org.junit.jupiter.api.Disabled;
76
import org.junit.jupiter.api.Test;
87
import org.springframework.http.HttpStatus;
9-
import org.springframework.web.client.RestTemplate;
10-
import org.springframework.web.util.DefaultUriBuilderFactory;
11-
12-
import java.util.List;
8+
import org.springframework.web.client.RestClient;
139

1410
import static org.junit.jupiter.api.Assertions.assertEquals;
1511

1612
class AlbumApiValidationTest {
17-
private static RestTemplate restTemplate;
13+
private static RestClient restClient;
1814

1915
@BeforeAll
2016
static void setupRestTemplate() {
@@ -25,26 +21,28 @@ static void setupRestTemplate() {
2521
.withResolveCombinators(true)
2622
.build());
2723

28-
restTemplate = new RestTemplate();
29-
restTemplate.setInterceptors(List.of(spotifyAuthInterceptor, validationInterceptor));
30-
restTemplate.setUriTemplateHandler(new DefaultUriBuilderFactory("https://api.spotify.com/v1"));
24+
restClient = RestClient.builder()
25+
.requestInterceptor(spotifyAuthInterceptor)
26+
.requestInterceptor(validationInterceptor)
27+
.baseUrl("https://api.spotify.com/v1")
28+
.build();
3129
}
3230

3331
@Test
3432
void validateGetAlbum() {
35-
var response = restTemplate.getForEntity("/albums/{id}", String.class, "3Q9wXhEAX7NYCPP0hxIuDz");
33+
var response = restClient.get().uri("/albums/{id}", "3Q9wXhEAX7NYCPP0hxIuDz").retrieve().toBodilessEntity();
3634
assertEquals(response.getStatusCode(), HttpStatus.OK);
3735
}
3836

3937
@Test
4038
void validateGetSeveralAlbums() {
41-
var response = restTemplate.getForEntity("/albums?ids={ids}", String.class, "3Q9wXhEAX7NYCPP0hxIuDz,5Eevxp2BCbWq25ZdiXRwYd");
39+
var response = restClient.get().uri("/albums?ids={ids}", "3Q9wXhEAX7NYCPP0hxIuDz,5Eevxp2BCbWq25ZdiXRwYd").retrieve().toBodilessEntity();
4240
assertEquals(response.getStatusCode(), HttpStatus.OK);
4341
}
4442

4543
@Test
4644
void validateGetAlbumTracks() {
47-
var response = restTemplate.getForEntity("/albums/{id}/tracks", String.class, "3Q9wXhEAX7NYCPP0hxIuDz");
45+
var response = restClient.get().uri("/albums/{id}/tracks", "3Q9wXhEAX7NYCPP0hxIuDz").retrieve().toBodilessEntity();
4846
assertEquals(response.getStatusCode(), HttpStatus.OK);
4947
}
5048
}

open-api-response-validator/src/test/java/de/sonallux/spotify/validator/ArtistsApiValidationTest.java

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,12 @@
66
import org.junit.jupiter.api.Disabled;
77
import org.junit.jupiter.api.Test;
88
import org.springframework.http.HttpStatus;
9-
import org.springframework.web.client.RestTemplate;
10-
import org.springframework.web.util.DefaultUriBuilderFactory;
11-
12-
import java.util.List;
9+
import org.springframework.web.client.RestClient;
1310

1411
import static org.junit.jupiter.api.Assertions.assertEquals;
1512

1613
class ArtistsApiValidationTest {
17-
private static RestTemplate restTemplate;
14+
private static RestClient restClient;
1815

1916
@BeforeAll
2017
static void setupRestTemplate() {
@@ -25,37 +22,39 @@ static void setupRestTemplate() {
2522
.withResolveCombinators(true)
2623
.build());
2724

28-
restTemplate = new RestTemplate();
29-
restTemplate.setInterceptors(List.of(spotifyAuthInterceptor, validationInterceptor));
30-
restTemplate.setUriTemplateHandler(new DefaultUriBuilderFactory("https://api.spotify.com/v1"));
25+
restClient = RestClient.builder()
26+
.requestInterceptor(spotifyAuthInterceptor)
27+
.requestInterceptor(validationInterceptor)
28+
.baseUrl("https://api.spotify.com/v1")
29+
.build();
3130
}
3231

3332
@Test
3433
void validateGetArtist() {
35-
var response = restTemplate.getForEntity("/artists/{id}", String.class, "4lDiJcOJ2GLCK6p9q5BgfK");
34+
var response = restClient.get().uri("/artists/{id}", "4lDiJcOJ2GLCK6p9q5BgfK").retrieve().toBodilessEntity();
3635
assertEquals(response.getStatusCode(), HttpStatus.OK);
3736
}
3837

3938
@Test
4039
void validateGetSeveralArtist() {
41-
var response = restTemplate.getForEntity("/artists?ids={ids}", String.class, "0Dvx6p8JDyzeOPGmaCIH1L,5Y5TRrQiqgUO4S36tzjIRZ");
40+
var response = restClient.get().uri("/artists?ids={ids}", "0Dvx6p8JDyzeOPGmaCIH1L,5Y5TRrQiqgUO4S36tzjIRZ").retrieve().toBodilessEntity();
4241
assertEquals(response.getStatusCode(), HttpStatus.OK);
4342
}
4443

4544
@Test
4645
void validateGetArtistsAlbums() {
4746
var artistId = "6XyY86QOPPrYVGvF9ch6wz";
4847

49-
var responseFirstPage = restTemplate.getForEntity("/artists/{id}/albums?limit=5", String.class, artistId);
48+
var responseFirstPage = restClient.get().uri("/artists/{id}/albums?limit=5", artistId).retrieve().toBodilessEntity();
5049
assertEquals(responseFirstPage.getStatusCode(), HttpStatus.OK);
5150

52-
var responseMiddlePage = restTemplate.getForEntity("/artists/{id}/albums?limit=5&offset=50", String.class, artistId);
51+
var responseMiddlePage = restClient.get().uri("/artists/{id}/albums?limit=5&offset=50", artistId).retrieve().toBodilessEntity();
5352
assertEquals(responseMiddlePage.getStatusCode(), HttpStatus.OK);
5453

55-
var responseLastPage = restTemplate.getForEntity("/artists/{id}/albums?limit=20&offset=360", String.class, artistId);
54+
var responseLastPage = restClient.get().uri("/artists/{id}/albums?limit=20&offset=360", artistId).retrieve().toBodilessEntity();
5655
assertEquals(responseLastPage.getStatusCode(), HttpStatus.OK);
5756

58-
var responseEmptyPage = restTemplate.getForEntity("/artists/{id}/albums?limit=20&offset=380", String.class, artistId);
57+
var responseEmptyPage = restClient.get().uri("/artists/{id}/albums?limit=20&offset=380", artistId).retrieve().toBodilessEntity();
5958
assertEquals(responseEmptyPage.getStatusCode(), HttpStatus.OK);
6059
}
6160

@@ -67,13 +66,13 @@ void validateGetArtistsAlbums() {
6766
@Disabled
6867
@Test
6968
void validateGetArtistsTopTracks() {
70-
var response = restTemplate.getForEntity("/artists/{id}/top-tracks?market=DE", String.class, "0Dvx6p8JDyzeOPGmaCIH1L");
69+
var response = restClient.get().uri("/artists/{id}/top-tracks?market=DE", "0Dvx6p8JDyzeOPGmaCIH1L").retrieve().toBodilessEntity();
7170
assertEquals(response.getStatusCode(), HttpStatus.OK);
7271
}
7372

7473
@Test
7574
void validateGetArtistsRelatedArtists() {
76-
var response = restTemplate.getForEntity("/artists/{id}/related-artists", String.class, "0Dvx6p8JDyzeOPGmaCIH1L");
75+
var response = restClient.get().uri("/artists/{id}/related-artists", "0Dvx6p8JDyzeOPGmaCIH1L").retrieve().toBodilessEntity();
7776
assertEquals(response.getStatusCode(), HttpStatus.OK);
7877
}
7978

0 commit comments

Comments
 (0)