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

View File

@ -173,6 +173,14 @@ class MainControllerIntegrationTests extends AbstractInitializrControllerIntegra
validateCurrentMetadata(new JSONObject(response.body)) 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 @Test
void metadataWithUnknownAcceptHeader() { void metadataWithUnknownAcceptHeader() {
try { try {