Improve test coverage

Validate that a client can request all the meta-data versions it support
to let the server choose the one it supports.
This commit is contained in:
Stephane Nicoll 2015-02-17 16:57:10 +01:00
parent da2ced86f3
commit 0d1f920ea6
2 changed files with 17 additions and 5 deletions

View File

@ -107,18 +107,22 @@ abstract class AbstractInitializrControllerIntegrationTests {
restTemplate.getForObject(createUrl(context), byte[])
}
protected ResponseEntity<String> invokeHome(String userAgentHeader, String acceptHeader) {
execute('/', String, userAgentHeader, acceptHeader)
protected ResponseEntity<String> invokeHome(String userAgentHeader, String... acceptHeaders) {
execute('/', String, userAgentHeader, acceptHeaders)
}
protected <T> ResponseEntity<T> execute(String contextPath, Class<T> responseType,
String userAgentHeader, String acceptHeader) {
String userAgentHeader, String... acceptHeaders) {
HttpHeaders headers = new HttpHeaders();
if (userAgentHeader) {
headers.set("User-Agent", userAgentHeader);
}
if (acceptHeader) {
headers.setAccept(Collections.singletonList(MediaType.parseMediaType(acceptHeader)))
if (acceptHeaders) {
List<MediaType> mediaTypes = new ArrayList<>()
for (String acceptHeader : acceptHeaders) {
mediaTypes.add(MediaType.parseMediaType(acceptHeader))
}
headers.setAccept(mediaTypes)
} else {
headers.setAccept(Collections.emptyList())
}

View File

@ -173,6 +173,14 @@ class MainControllerIntegrationTests extends AbstractInitializrControllerIntegra
validateCurrentMetadata(new JSONObject(response.body))
}
@Test
void metadataWithSeveralAcceptHeader() {
ResponseEntity<String> response = invokeHome(null,
'application/vnd.initializr.v2.1+json', 'application/vnd.initializr.v2+json')
validateContentType(response, CURRENT_METADATA_MEDIA_TYPE)
validateCurrentMetadata(new JSONObject(response.body))
}
@Test
void metadataWithUnknownAcceptHeader() {
try {