From e552ee5eec6475bc562efa04958cd74292e4c027 Mon Sep 17 00:00:00 2001 From: "hidde.wieringa" Date: Thu, 22 Oct 2020 16:36:18 +0200 Subject: [PATCH] Add test cases for content type changes in request and response --- .../openapidiff/core/ContentDiffTest.java | 32 +++++++++++++++++ .../resources/content_type_request_add_1.yaml | 31 +++++++++++++++++ .../resources/content_type_request_add_2.yaml | 34 +++++++++++++++++++ .../content_type_response_add_1.yaml | 26 ++++++++++++++ .../content_type_response_add_2.yaml | 29 ++++++++++++++++ 5 files changed, 152 insertions(+) create mode 100644 core/src/test/resources/content_type_request_add_1.yaml create mode 100644 core/src/test/resources/content_type_request_add_2.yaml create mode 100644 core/src/test/resources/content_type_response_add_1.yaml create mode 100644 core/src/test/resources/content_type_response_add_2.yaml diff --git a/core/src/test/java/org/openapitools/openapidiff/core/ContentDiffTest.java b/core/src/test/java/org/openapitools/openapidiff/core/ContentDiffTest.java index ac3dbd9f0..190b5a32f 100644 --- a/core/src/test/java/org/openapitools/openapidiff/core/ContentDiffTest.java +++ b/core/src/test/java/org/openapitools/openapidiff/core/ContentDiffTest.java @@ -27,4 +27,36 @@ public void testSameContentDiff() { ChangedOpenApi changedOpenApi = OpenApiCompare.fromLocations(OPENAPI_DOC2, OPENAPI_DOC2); assertThat(changedOpenApi.isUnchanged()).isTrue(); } + + @Test + public void testAddedResponseContentTypeDiff() { + ChangedOpenApi changedOpenApi = + OpenApiCompare.fromLocations( + "content_type_response_add_1.yaml", "content_type_response_add_2.yaml"); + assertThat(changedOpenApi.isCompatible()).isFalse(); + } + + @Test + public void testRemovedResponseContentTypeDiff() { + ChangedOpenApi changedOpenApi = + OpenApiCompare.fromLocations( + "content_type_response_add_2.yaml", "content_type_response_add_1.yaml"); + assertThat(changedOpenApi.isCompatible()).isTrue(); + } + + @Test + public void testAddedRequestContentTypeDiff() { + ChangedOpenApi changedOpenApi = + OpenApiCompare.fromLocations( + "content_type_request_add_1.yaml", "content_type_request_add_2.yaml"); + assertThat(changedOpenApi.isCompatible()).isTrue(); + } + + @Test + public void testRemovedRequestContentTypeDiff() { + ChangedOpenApi changedOpenApi = + OpenApiCompare.fromLocations( + "content_type_request_add_2.yaml", "content_type_request_add_1.yaml"); + assertThat(changedOpenApi.isCompatible()).isFalse(); + } } diff --git a/core/src/test/resources/content_type_request_add_1.yaml b/core/src/test/resources/content_type_request_add_1.yaml new file mode 100644 index 000000000..2762f0981 --- /dev/null +++ b/core/src/test/resources/content_type_request_add_1.yaml @@ -0,0 +1,31 @@ +--- +openapi: "3.0.1" +info: + title: "Test title" + description: "This is a test metadata" + termsOfService: "http://test.com" + contact: + name: "Mark Snijder" + url: "marksnijder.nl" + email: "snijderd@gmail.com" + license: + name: "To be decided" + url: "http://test.com" + version: "version 1.0" +paths: + /pets/{id}: + get: + description: Returns a user based on a single ID, if the user does not have access to the pet + operationId: find pet by id + requestBody: + content: + application/json: + schema: + type: string + responses: + '200': + description: response + content: + application/json: + schema: + type: string diff --git a/core/src/test/resources/content_type_request_add_2.yaml b/core/src/test/resources/content_type_request_add_2.yaml new file mode 100644 index 000000000..815e99887 --- /dev/null +++ b/core/src/test/resources/content_type_request_add_2.yaml @@ -0,0 +1,34 @@ +--- +openapi: "3.0.1" +info: + title: "Test title" + description: "This is a test metadata" + termsOfService: "http://test.com" + contact: + name: "Mark Snijder" + url: "marksnijder.nl" + email: "snijderd@gmail.com" + license: + name: "To be decided" + url: "http://test.com" + version: "version 1.0" +paths: + /pets/{id}: + get: + description: Returns a user based on a single ID, if the user does not have access to the pet + operationId: find pet by id + requestBody: + content: + application/json: + schema: + type: string + application/xml: + schema: + type: string + responses: + '200': + description: response + content: + application/json: + schema: + type: string diff --git a/core/src/test/resources/content_type_response_add_1.yaml b/core/src/test/resources/content_type_response_add_1.yaml new file mode 100644 index 000000000..d92065a36 --- /dev/null +++ b/core/src/test/resources/content_type_response_add_1.yaml @@ -0,0 +1,26 @@ +--- +openapi: "3.0.1" +info: + title: "Test title" + description: "This is a test metadata" + termsOfService: "http://test.com" + contact: + name: "Mark Snijder" + url: "marksnijder.nl" + email: "snijderd@gmail.com" + license: + name: "To be decided" + url: "http://test.com" + version: "version 1.0" +paths: + /pets/{id}: + get: + description: Returns a user based on a single ID, if the user does not have access to the pet + operationId: find pet by id + responses: + '200': + description: response + content: + application/json: + schema: + type: string diff --git a/core/src/test/resources/content_type_response_add_2.yaml b/core/src/test/resources/content_type_response_add_2.yaml new file mode 100644 index 000000000..c0afbf4dd --- /dev/null +++ b/core/src/test/resources/content_type_response_add_2.yaml @@ -0,0 +1,29 @@ +--- +openapi: "3.0.1" +info: + title: "Test title" + description: "This is a test metadata" + termsOfService: "http://test.com" + contact: + name: "Mark Snijder" + url: "marksnijder.nl" + email: "snijderd@gmail.com" + license: + name: "To be decided" + url: "http://test.com" + version: "version 1.0" +paths: + /pets/{id}: + get: + description: Returns a user based on a single ID, if the user does not have access to the pet + operationId: find pet by id + responses: + '200': + description: response + content: + application/json: + schema: + type: string + application/xml: + schema: + type: string