From 942e7655bd2d6ad8347ed9d290dfaaeb2ae6d36e Mon Sep 17 00:00:00 2001 From: Florent CHAMFROY Date: Wed, 7 Oct 2020 15:08:45 +0200 Subject: [PATCH] fix(): info mapping Put swagger 1.2 `contact` field into swagger 2 `contact.email` field instead of url Fixes #1451 --- .../io/swagger/parser/SwaggerCompatConverter.java | 2 +- .../SwaggerCompatConverterTest.java | 8 ++++++++ .../src/test/resources/specs/v1_2/issue-1451.json | 13 +++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 modules/swagger-compat-spec-parser/src/test/resources/specs/v1_2/issue-1451.json diff --git a/modules/swagger-compat-spec-parser/src/main/java/io/swagger/parser/SwaggerCompatConverter.java b/modules/swagger-compat-spec-parser/src/main/java/io/swagger/parser/SwaggerCompatConverter.java index 16a2a76904..073eb9568f 100644 --- a/modules/swagger-compat-spec-parser/src/main/java/io/swagger/parser/SwaggerCompatConverter.java +++ b/modules/swagger-compat-spec-parser/src/main/java/io/swagger/parser/SwaggerCompatConverter.java @@ -552,7 +552,7 @@ public Swagger convert(ResourceListing resourceListing, List api Contact contact = null; if (apiInfo.getContact() != null) { contact = new Contact() - .url(apiInfo.getContact()); + .email(apiInfo.getContact()); } License license = null; if (apiInfo.getLicense() != null) { diff --git a/modules/swagger-compat-spec-parser/src/test/java/io/swagger/parserExtensions/SwaggerCompatConverterTest.java b/modules/swagger-compat-spec-parser/src/test/java/io/swagger/parserExtensions/SwaggerCompatConverterTest.java index 4a06fdc181..f498338860 100644 --- a/modules/swagger-compat-spec-parser/src/test/java/io/swagger/parserExtensions/SwaggerCompatConverterTest.java +++ b/modules/swagger-compat-spec-parser/src/test/java/io/swagger/parserExtensions/SwaggerCompatConverterTest.java @@ -37,4 +37,12 @@ public void testIssue_641()throws IOException { BodyParameter bodyParameter = (BodyParameter) swagger2.getPaths().get("/user/createWithArray").getPost().getParameters().get(0); assertEquals(((RefProperty)((ArrayModel)bodyParameter.getSchema()).getItems()).get$ref(),"#/definitions/User"); } + + @Test + public void testIssue_1451()throws IOException { + SwaggerCompatConverter converter = new SwaggerCompatConverter(); + Swagger swagger2 = converter.read("specs/v1_2/issue-1451.json"); + assertNotNull(swagger2); + assertEquals(swagger2.getInfo().getContact().getEmail(), "apiteam@swagger.io"); + } } diff --git a/modules/swagger-compat-spec-parser/src/test/resources/specs/v1_2/issue-1451.json b/modules/swagger-compat-spec-parser/src/test/resources/specs/v1_2/issue-1451.json new file mode 100644 index 0000000000..66bb95c880 --- /dev/null +++ b/modules/swagger-compat-spec-parser/src/test/resources/specs/v1_2/issue-1451.json @@ -0,0 +1,13 @@ +{ + "apiVersion": "1.0.0", + "swaggerVersion": "1.2", + "basePath": "http://petstore.swagger.io/api", + "info": { + "contact": "apiteam@swagger.io" + }, + "apis": [ + { + "path": "/test" + } + ] +}