Merge branch '1.2.x'

This commit is contained in:
Andy Wilkinson
2017-11-07 18:03:03 +00:00
2 changed files with 22 additions and 11 deletions

View File

@@ -227,12 +227,13 @@ public final class RestDocumentationGenerator<REQ, RESP> {
@SuppressWarnings("unchecked")
private List<Snippet> getSnippets(Map<String, Object> configuration) {
List<Snippet> combinedSnippets = new ArrayList<>(this.snippets);
List<Snippet> combinedSnippets = new ArrayList<>();
List<Snippet> defaultSnippets = (List<Snippet>) configuration
.get(ATTRIBUTE_NAME_DEFAULT_SNIPPETS);
if (defaultSnippets != null) {
combinedSnippets.addAll(defaultSnippets);
}
combinedSnippets.addAll(this.snippets);
return combinedSnippets;
}

View File

@@ -24,6 +24,7 @@ import java.util.Map;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
import org.mockito.InOrder;
import org.mockito.Mockito;
import org.springframework.http.HttpHeaders;
@@ -111,9 +112,10 @@ public class RestDocumentationGeneratorTests {
new RestDocumentationGenerator<>("id", this.requestConverter,
this.responseConverter, this.snippet).handle(this.request, this.response,
configuration);
verifySnippetInvocation(this.snippet, configuration);
verifySnippetInvocation(defaultSnippet1, configuration);
verifySnippetInvocation(defaultSnippet2, configuration);
InOrder inOrder = Mockito.inOrder(defaultSnippet1, defaultSnippet2, this.snippet);
verifySnippetInvocation(inOrder, defaultSnippet1, configuration);
verifySnippetInvocation(inOrder, defaultSnippet2, configuration);
verifySnippetInvocation(inOrder, this.snippet, configuration);
}
@Test
@@ -202,13 +204,12 @@ public class RestDocumentationGeneratorTests {
private void verifySnippetInvocation(Snippet snippet, Map<String, Object> attributes)
throws IOException {
verifySnippetInvocation(snippet, attributes, 1);
}
private void verifySnippetInvocation(Snippet snippet, Map<String, Object> attributes,
int times) throws IOException {
verifySnippetInvocation(snippet, this.operationRequest, this.operationResponse,
attributes, times);
ArgumentCaptor<Operation> operation = ArgumentCaptor.forClass(Operation.class);
verify(snippet).document(operation.capture());
assertThat(this.operationRequest, is(equalTo(operation.getValue().getRequest())));
assertThat(this.operationResponse,
is(equalTo(operation.getValue().getResponse())));
assertThat(attributes, is(equalTo(operation.getValue().getAttributes())));
}
private void verifySnippetInvocation(Snippet snippet,
@@ -218,6 +219,15 @@ public class RestDocumentationGeneratorTests {
verify(snippet, Mockito.times(times)).document(operation.capture());
assertThat(operationRequest, is(equalTo(operation.getValue().getRequest())));
assertThat(operationResponse, is(equalTo(operation.getValue().getResponse())));
}
private void verifySnippetInvocation(InOrder inOrder, Snippet snippet,
Map<String, Object> attributes) throws IOException {
ArgumentCaptor<Operation> operation = ArgumentCaptor.forClass(Operation.class);
inOrder.verify(snippet).document(operation.capture());
assertThat(this.operationRequest, is(equalTo(operation.getValue().getRequest())));
assertThat(this.operationResponse,
is(equalTo(operation.getValue().getResponse())));
assertThat(attributes, is(equalTo(operation.getValue().getAttributes())));
}