From 4850673b960a4ed01b5ac3d385a0b4e6dbe84de9 Mon Sep 17 00:00:00 2001 From: Horst Gutmann Date: Thu, 4 Aug 2016 10:00:33 +0200 Subject: [PATCH] Allow empty contact objects According to the spec the contact object can be empty (it doesn't have any required properties). Previously, the markup generation failed in that situation due to an empty paragraph being generated. This change fixes that. --- .../builder/OverviewDocumentBuilder.java | 2 +- .../swagger2markup/AsciidocConverterTest.java | 23 +++++++++++++++++++ .../asciidoc/emptycontact/definitions.adoc | 2 ++ .../asciidoc/emptycontact/overview.adoc | 12 ++++++++++ .../expected/asciidoc/emptycontact/paths.adoc | 2 ++ .../asciidoc/emptycontact/security.adoc | 2 ++ .../resources/json/swagger_emptycontact.json | 9 ++++++++ 7 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 src/test/resources/expected/asciidoc/emptycontact/definitions.adoc create mode 100644 src/test/resources/expected/asciidoc/emptycontact/overview.adoc create mode 100644 src/test/resources/expected/asciidoc/emptycontact/paths.adoc create mode 100644 src/test/resources/expected/asciidoc/emptycontact/security.adoc create mode 100644 src/test/resources/json/swagger_emptycontact.json diff --git a/src/main/java/io/github/swagger2markup/internal/document/builder/OverviewDocumentBuilder.java b/src/main/java/io/github/swagger2markup/internal/document/builder/OverviewDocumentBuilder.java index eb94258c..cfcb003e 100644 --- a/src/main/java/io/github/swagger2markup/internal/document/builder/OverviewDocumentBuilder.java +++ b/src/main/java/io/github/swagger2markup/internal/document/builder/OverviewDocumentBuilder.java @@ -115,7 +115,7 @@ public class OverviewDocumentBuilder extends MarkupDocumentBuilder { } private void buildContactInfoSection(Contact contact) { - if(contact != null){ + if(contact != null && (isNotBlank(contact.getName()) || isNotBlank(contact.getEmail()))){ this.markupDocBuilder.sectionTitleLevel2(CONTACT_INFORMATION); MarkupDocBuilder paragraph = copyMarkupDocBuilder(); if(isNotBlank(contact.getName())){ diff --git a/src/test/java/io/github/swagger2markup/AsciidocConverterTest.java b/src/test/java/io/github/swagger2markup/AsciidocConverterTest.java index a5d47523..b54c62ca 100644 --- a/src/test/java/io/github/swagger2markup/AsciidocConverterTest.java +++ b/src/test/java/io/github/swagger2markup/AsciidocConverterTest.java @@ -549,4 +549,27 @@ public class AsciidocConverterTest { Path expectedFilesDirectory = Paths.get(AsciidocConverterTest.class.getResource("/expected/asciidoc/response_headers").toURI()); DiffUtils.assertThatAllFilesAreEqual(expectedFilesDirectory, outputDirectory, "testSwagger2AsciiDocConversionWithResponseHeaders.html"); } + + @Test + public void testSwagger2AsciiDocConversionWithEmptyContactUsingJSON() throws IOException, URISyntaxException { + //Given + Path file = Paths.get(AsciidocConverterTest.class.getResource("/json/swagger_emptycontact.json").toURI()); + Path outputDirectory = Paths.get("build/test/asciidoc/emptycontact"); + FileUtils.deleteQuietly(outputDirectory.toFile()); + + //When + Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder() + .build(); + Swagger2MarkupConverter.from(file) + .withConfig(config) + .build() + .toFolder(outputDirectory); + + //Then + String[] files = outputDirectory.toFile().list(); + assertThat(files).hasSize(4).containsAll(expectedFiles); + + Path expectedFilesDirectory = Paths.get(AsciidocConverterTest.class.getResource("/expected/asciidoc/emptycontact").toURI()); + DiffUtils.assertThatAllFilesAreEqual(expectedFilesDirectory, outputDirectory, "testSwagger2AsciiDocConversionWithEmptyContactUsingJSON.html"); + } } diff --git a/src/test/resources/expected/asciidoc/emptycontact/definitions.adoc b/src/test/resources/expected/asciidoc/emptycontact/definitions.adoc new file mode 100644 index 00000000..139597f9 --- /dev/null +++ b/src/test/resources/expected/asciidoc/emptycontact/definitions.adoc @@ -0,0 +1,2 @@ + + diff --git a/src/test/resources/expected/asciidoc/emptycontact/overview.adoc b/src/test/resources/expected/asciidoc/emptycontact/overview.adoc new file mode 100644 index 00000000..bb608b8c --- /dev/null +++ b/src/test/resources/expected/asciidoc/emptycontact/overview.adoc @@ -0,0 +1,12 @@ += Empty Contact + + +[[_overview]] +== Overview + +=== Version information +[%hardbreaks] +_Version_ : 1.0 + + + diff --git a/src/test/resources/expected/asciidoc/emptycontact/paths.adoc b/src/test/resources/expected/asciidoc/emptycontact/paths.adoc new file mode 100644 index 00000000..139597f9 --- /dev/null +++ b/src/test/resources/expected/asciidoc/emptycontact/paths.adoc @@ -0,0 +1,2 @@ + + diff --git a/src/test/resources/expected/asciidoc/emptycontact/security.adoc b/src/test/resources/expected/asciidoc/emptycontact/security.adoc new file mode 100644 index 00000000..139597f9 --- /dev/null +++ b/src/test/resources/expected/asciidoc/emptycontact/security.adoc @@ -0,0 +1,2 @@ + + diff --git a/src/test/resources/json/swagger_emptycontact.json b/src/test/resources/json/swagger_emptycontact.json new file mode 100644 index 00000000..6069db06 --- /dev/null +++ b/src/test/resources/json/swagger_emptycontact.json @@ -0,0 +1,9 @@ +{ + "swagger": "2.0", + "info": { + "title": "Empty Contact", + "contact": {}, + "version": "1.0" + }, + "paths": {} +}