Polish "Fix NPE in HttpResponseSnippet when response has custom status"

See gh-653
This commit is contained in:
Andy Wilkinson
2019-10-22 10:06:51 +01:00
parent aee641b642
commit d925a9f219
4 changed files with 15 additions and 10 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2014-2018 the original author or authors.
* Copyright 2014-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -56,17 +56,17 @@ public class HttpResponseSnippet extends TemplatedSnippet {
@Override
protected Map<String, Object> createModel(Operation operation) {
OperationResponse response = operation.getResponse();
HttpStatus status = response.getStatus();
Map<String, Object> model = new HashMap<>();
model.put("responseBody", responseBody(response));
model.put("headers", headers(response));
HttpStatus status = response.getStatus();
if (status != null) {
model.put("statusCode", status.value());
model.put("statusReason", status.getReasonPhrase());
}
else {
model.put("statusCode", response.getStatusCode());
model.put("statusReason", "Http custom status.");
model.put("statusReason", "");
}
return model;
}

View File

@@ -89,8 +89,8 @@ public abstract class AbstractSnippetTests {
return SnippetConditions.httpResponse(this.templateFormat, responseStatus);
}
public HttpResponseCondition httpResponse(Integer responseStatusCode, String responseStatusReason) {
return SnippetConditions.httpResponse(this.templateFormat, responseStatusCode, responseStatusReason);
public HttpResponseCondition httpResponse(int responseStatusCode) {
return SnippetConditions.httpResponse(this.templateFormat, responseStatusCode, "");
}
protected FileSystemResource snippetResource(String name) {

View File

@@ -100,6 +100,7 @@ public class HttpResponseSnippetTests extends AbstractSnippetTests {
@Test
public void responseWithCustomStatus() throws IOException {
new HttpResponseSnippet().document(this.operationBuilder.response().status(215).build());
assertThat(this.generatedSnippets.httpResponse()).is(httpResponse(215,"Http custom status."));
assertThat(this.generatedSnippets.httpResponse()).is(httpResponse(215));
}
}

View File

@@ -71,11 +71,14 @@ public final class SnippetConditions {
return new HttpResponseCondition(status, new MarkdownCodeBlockCondition<>("http"), 2);
}
public static HttpResponseCondition httpResponse(TemplateFormat format, Integer responseStatusCode, String responseStatusReason) {
public static HttpResponseCondition httpResponse(TemplateFormat format, Integer responseStatusCode,
String responseStatusReason) {
if ("adoc".equals(format.getFileExtension())) {
return new HttpResponseCondition(responseStatusCode, responseStatusReason, new AsciidoctorCodeBlockCondition<>("http", "nowrap"), 3);
return new HttpResponseCondition(responseStatusCode, responseStatusReason,
new AsciidoctorCodeBlockCondition<>("http", "nowrap"), 3);
}
return new HttpResponseCondition(responseStatusCode, responseStatusReason, new MarkdownCodeBlockCondition<>("http"), 2);
return new HttpResponseCondition(responseStatusCode, responseStatusReason,
new MarkdownCodeBlockCondition<>("http"), 2);
}
@SuppressWarnings({ "rawtypes" })
@@ -242,7 +245,8 @@ public final class SnippetConditions {
this.content("");
}
private HttpResponseCondition(Integer responseStatusCode, String responseStatusReason, CodeBlockCondition<?> delegate, int headerOffset) {
private HttpResponseCondition(int responseStatusCode, String responseStatusReason,
CodeBlockCondition<?> delegate, int headerOffset) {
super(delegate, headerOffset);
this.content("HTTP/1.1 " + responseStatusCode + " " + responseStatusReason);
this.content("");