From da64c55fce36757391446e8c7da1aa544766f965 Mon Sep 17 00:00:00 2001 From: Johnny Lim Date: Mon, 26 Mar 2018 21:58:53 +0900 Subject: [PATCH] Add HTTP method option unconditionally in curl command Closes gh-488 --- .../restdocs/cli/CurlRequestSnippet.java | 11 ++--- .../restdocs/cli/CurlRequestSnippetTests.java | 41 +++++++++---------- ...kMvcRestDocumentationIntegrationTests.java | 15 +++---- ...uredRestDocumentationIntegrationTests.java | 2 +- ...uredRestDocumentationIntegrationTests.java | 2 +- 5 files changed, 34 insertions(+), 37 deletions(-) diff --git a/spring-restdocs-core/src/main/java/org/springframework/restdocs/cli/CurlRequestSnippet.java b/spring-restdocs-core/src/main/java/org/springframework/restdocs/cli/CurlRequestSnippet.java index 84a47c31..b95b0cab 100644 --- a/spring-restdocs-core/src/main/java/org/springframework/restdocs/cli/CurlRequestSnippet.java +++ b/spring-restdocs-core/src/main/java/org/springframework/restdocs/cli/CurlRequestSnippet.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2017 the original author or authors. + * Copyright 2014-2018 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. @@ -128,7 +128,7 @@ public class CurlRequestSnippet extends TemplatedSnippet { CliOperationRequest request = new CliOperationRequest(operation.getRequest()); writeUserOptionIfNecessary(request, builder); - writeHttpMethodIfNecessary(request, builder); + writeHttpMethod(request, builder); List additionalLines = new ArrayList<>(); writeHeaders(request, additionalLines); @@ -167,11 +167,8 @@ public class CurlRequestSnippet extends TemplatedSnippet { } } - private void writeHttpMethodIfNecessary(OperationRequest request, - StringBuilder builder) { - if (!HttpMethod.GET.equals(request.getMethod())) { - builder.append(String.format(" -X %s", request.getMethod())); - } + private void writeHttpMethod(OperationRequest request, StringBuilder builder) { + builder.append(String.format(" -X %s", request.getMethod())); } private void writeHeaders(CliOperationRequest request, List lines) { diff --git a/spring-restdocs-core/src/test/java/org/springframework/restdocs/cli/CurlRequestSnippetTests.java b/spring-restdocs-core/src/test/java/org/springframework/restdocs/cli/CurlRequestSnippetTests.java index d0fe1f76..f6d9a916 100644 --- a/spring-restdocs-core/src/test/java/org/springframework/restdocs/cli/CurlRequestSnippetTests.java +++ b/spring-restdocs-core/src/test/java/org/springframework/restdocs/cli/CurlRequestSnippetTests.java @@ -59,15 +59,15 @@ public class CurlRequestSnippetTests extends AbstractSnippetTests { @Test public void getRequest() throws IOException { this.snippets.expectCurlRequest().withContents( - codeBlock("bash").content("$ curl 'http://localhost/foo' -i")); + codeBlock("bash").content("$ curl 'http://localhost/foo' -i -X GET")); new CurlRequestSnippet(this.commandFormatter) .document(this.operationBuilder.request("http://localhost/foo").build()); } @Test public void getRequestWithParameter() throws IOException { - this.snippets.expectCurlRequest().withContents( - codeBlock("bash").content("$ curl 'http://localhost/foo?a=alpha' -i")); + this.snippets.expectCurlRequest().withContents(codeBlock("bash") + .content("$ curl 'http://localhost/foo?a=alpha' -i -X GET")); new CurlRequestSnippet(this.commandFormatter).document(this.operationBuilder .request("http://localhost/foo").param("a", "alpha").build()); } @@ -83,7 +83,7 @@ public class CurlRequestSnippetTests extends AbstractSnippetTests { @Test public void requestWithContent() throws IOException { this.snippets.expectCurlRequest().withContents(codeBlock("bash") - .content("$ curl 'http://localhost/foo' -i -d 'content'")); + .content("$ curl 'http://localhost/foo' -i -X GET -d 'content'")); new CurlRequestSnippet(this.commandFormatter).document(this.operationBuilder .request("http://localhost/foo").content("content").build()); } @@ -91,7 +91,7 @@ public class CurlRequestSnippetTests extends AbstractSnippetTests { @Test public void getRequestWithQueryString() throws IOException { this.snippets.expectCurlRequest().withContents(codeBlock("bash") - .content("$ curl 'http://localhost/foo?param=value' -i")); + .content("$ curl 'http://localhost/foo?param=value' -i -X GET")); new CurlRequestSnippet(this.commandFormatter).document(this.operationBuilder .request("http://localhost/foo?param=value").build()); } @@ -100,7 +100,7 @@ public class CurlRequestSnippetTests extends AbstractSnippetTests { public void getRequestWithTotallyOverlappingQueryStringAndParameters() throws IOException { this.snippets.expectCurlRequest().withContents(codeBlock("bash") - .content("$ curl 'http://localhost/foo?param=value' -i")); + .content("$ curl 'http://localhost/foo?param=value' -i -X GET")); new CurlRequestSnippet(this.commandFormatter).document( this.operationBuilder.request("http://localhost/foo?param=value") .param("param", "value").build()); @@ -110,7 +110,7 @@ public class CurlRequestSnippetTests extends AbstractSnippetTests { public void getRequestWithPartiallyOverlappingQueryStringAndParameters() throws IOException { this.snippets.expectCurlRequest().withContents(codeBlock("bash") - .content("$ curl 'http://localhost/foo?a=alpha&b=bravo' -i")); + .content("$ curl 'http://localhost/foo?a=alpha&b=bravo' -i -X GET")); new CurlRequestSnippet(this.commandFormatter) .document(this.operationBuilder.request("http://localhost/foo?a=alpha") .param("a", "alpha").param("b", "bravo").build()); @@ -119,15 +119,15 @@ public class CurlRequestSnippetTests extends AbstractSnippetTests { @Test public void getRequestWithDisjointQueryStringAndParameters() throws IOException { this.snippets.expectCurlRequest().withContents(codeBlock("bash") - .content("$ curl 'http://localhost/foo?a=alpha&b=bravo' -i")); + .content("$ curl 'http://localhost/foo?a=alpha&b=bravo' -i -X GET")); new CurlRequestSnippet(this.commandFormatter).document(this.operationBuilder .request("http://localhost/foo?a=alpha").param("b", "bravo").build()); } @Test public void getRequestWithQueryStringWithNoValue() throws IOException { - this.snippets.expectCurlRequest().withContents( - codeBlock("bash").content("$ curl 'http://localhost/foo?param' -i")); + this.snippets.expectCurlRequest().withContents(codeBlock("bash") + .content("$ curl 'http://localhost/foo?param' -i -X GET")); new CurlRequestSnippet(this.commandFormatter).document( this.operationBuilder.request("http://localhost/foo?param").build()); } @@ -242,8 +242,8 @@ public class CurlRequestSnippetTests extends AbstractSnippetTests { @Test public void requestWithHeaders() throws IOException { - this.snippets.expectCurlRequest() - .withContents(codeBlock("bash").content("$ curl 'http://localhost/foo' -i" + this.snippets.expectCurlRequest().withContents( + codeBlock("bash").content("$ curl 'http://localhost/foo' -i -X GET" + " -H 'Content-Type: application/json' -H 'a: alpha'")); new CurlRequestSnippet(this.commandFormatter).document(this.operationBuilder .request("http://localhost/foo") @@ -254,8 +254,8 @@ public class CurlRequestSnippetTests extends AbstractSnippetTests { @Test public void requestWithHeadersMultiline() throws IOException { this.snippets.expectCurlRequest() - .withContents(codeBlock("bash") - .content(String.format("$ curl 'http://localhost/foo' -i \\%n" + .withContents(codeBlock("bash").content( + String.format("$ curl 'http://localhost/foo' -i -X GET \\%n" + " -H 'Content-Type: application/json' \\%n" + " -H 'a: alpha'"))); new CurlRequestSnippet(CliDocumentation.multiLineFormat()) @@ -267,8 +267,8 @@ public class CurlRequestSnippetTests extends AbstractSnippetTests { @Test public void requestWithCookies() throws IOException { - this.snippets.expectCurlRequest() - .withContents(codeBlock("bash").content("$ curl 'http://localhost/foo' -i" + this.snippets.expectCurlRequest().withContents( + codeBlock("bash").content("$ curl 'http://localhost/foo' -i -X GET" + " --cookie 'name1=value1;name2=value2'")); new CurlRequestSnippet(this.commandFormatter) .document(this.operationBuilder.request("http://localhost/foo") @@ -336,7 +336,7 @@ public class CurlRequestSnippetTests extends AbstractSnippetTests { @Test public void basicAuthCredentialsAreSuppliedUsingUserOption() throws IOException { this.snippets.expectCurlRequest().withContents(codeBlock("bash") - .content("$ curl 'http://localhost/foo' -i -u 'user:secret'")); + .content("$ curl 'http://localhost/foo' -i -u 'user:secret' -X GET")); new CurlRequestSnippet(this.commandFormatter).document(this.operationBuilder .request("http://localhost/foo") .header(HttpHeaders.AUTHORIZATION, @@ -363,10 +363,9 @@ public class CurlRequestSnippetTests extends AbstractSnippetTests { @Test public void customHostHeaderIsIncluded() throws IOException { - this.snippets.expectCurlRequest() - .withContents(codeBlock("bash").content( - "$ curl 'http://localhost/foo' -i" + " -H 'Host: api.example.com'" - + " -H 'Content-Type: application/json' -H 'a: alpha'")); + this.snippets.expectCurlRequest().withContents(codeBlock("bash").content( + "$ curl 'http://localhost/foo' -i -X GET -H 'Host: api.example.com'" + + " -H 'Content-Type: application/json' -H 'a: alpha'")); new CurlRequestSnippet(this.commandFormatter).document(this.operationBuilder .request("http://localhost/foo") .header(HttpHeaders.HOST, "api.example.com") diff --git a/spring-restdocs-mockmvc/src/test/java/org/springframework/restdocs/mockmvc/MockMvcRestDocumentationIntegrationTests.java b/spring-restdocs-mockmvc/src/test/java/org/springframework/restdocs/mockmvc/MockMvcRestDocumentationIntegrationTests.java index ea8ec5c6..bb319763 100644 --- a/spring-restdocs-mockmvc/src/test/java/org/springframework/restdocs/mockmvc/MockMvcRestDocumentationIntegrationTests.java +++ b/spring-restdocs-mockmvc/src/test/java/org/springframework/restdocs/mockmvc/MockMvcRestDocumentationIntegrationTests.java @@ -178,10 +178,11 @@ public class MockMvcRestDocumentationIntegrationTests { .andDo(document("curl-snippet-with-cookies")); assertThat(new File( "build/generated-snippets/curl-snippet-with-cookies/curl-request.adoc"), - is(snippet(asciidoctor()).withContents(codeBlock(asciidoctor(), "bash") - .content(String.format("$ curl 'http://localhost:8080/' -i \\%n" - + " -H 'Accept: application/json' \\%n" - + " --cookie 'cookieName=cookieVal'"))))); + is(snippet(asciidoctor()) + .withContents(codeBlock(asciidoctor(), "bash").content(String + .format("$ curl 'http://localhost:8080/' -i -X GET \\%n" + + " -H 'Accept: application/json' \\%n" + + " --cookie 'cookieName=cookieVal'"))))); } @Test @@ -556,9 +557,9 @@ public class MockMvcRestDocumentationIntegrationTests { assertThat( new File( "build/generated-snippets/custom-context-path/curl-request.adoc"), - is(snippet(asciidoctor()) - .withContents(codeBlock(asciidoctor(), "bash").content(String - .format("$ curl 'http://localhost:8080/custom/' -i \\%n" + is(snippet(asciidoctor()).withContents( + codeBlock(asciidoctor(), "bash").content(String.format( + "$ curl 'http://localhost:8080/custom/' -i -X GET \\%n" + " -H 'Accept: application/json'"))))); } diff --git a/spring-restdocs-restassured/src/test/java/org/springframework/restdocs/restassured/RestAssuredRestDocumentationIntegrationTests.java b/spring-restdocs-restassured/src/test/java/org/springframework/restdocs/restassured/RestAssuredRestDocumentationIntegrationTests.java index 09ea38bf..c546e658 100644 --- a/spring-restdocs-restassured/src/test/java/org/springframework/restdocs/restassured/RestAssuredRestDocumentationIntegrationTests.java +++ b/spring-restdocs-restassured/src/test/java/org/springframework/restdocs/restassured/RestAssuredRestDocumentationIntegrationTests.java @@ -121,7 +121,7 @@ public class RestAssuredRestDocumentationIntegrationTests { "build/generated-snippets/curl-snippet-with-cookies/curl-request.adoc"), is(snippet(asciidoctor()).withContents(codeBlock(asciidoctor(), "bash") .content(String.format("$ curl 'http://localhost:" - + tomcat.getPort() + "/' -i \\%n" + + tomcat.getPort() + "/' -i -X GET \\%n" + " -H 'Accept: application/json' \\%n" + " -H 'Content-Type: " + contentType + "' \\%n" + " --cookie 'cookieName=cookieVal'"))))); diff --git a/spring-restdocs-restassured/src/test/java/org/springframework/restdocs/restassured3/RestAssuredRestDocumentationIntegrationTests.java b/spring-restdocs-restassured/src/test/java/org/springframework/restdocs/restassured3/RestAssuredRestDocumentationIntegrationTests.java index fcd34094..f817123f 100644 --- a/spring-restdocs-restassured/src/test/java/org/springframework/restdocs/restassured3/RestAssuredRestDocumentationIntegrationTests.java +++ b/spring-restdocs-restassured/src/test/java/org/springframework/restdocs/restassured3/RestAssuredRestDocumentationIntegrationTests.java @@ -120,7 +120,7 @@ public class RestAssuredRestDocumentationIntegrationTests { "build/generated-snippets/curl-snippet-with-cookies/curl-request.adoc"), is(snippet(asciidoctor()).withContents(codeBlock(asciidoctor(), "bash") .content(String.format("$ curl 'http://localhost:" - + tomcat.getPort() + "/' -i \\%n" + + tomcat.getPort() + "/' -i -X GET \\%n" + " -H 'Accept: application/json' \\%n" + " -H 'Content-Type: " + contentType + "' \\%n" + " --cookie 'cookieName=cookieVal'")))));