From f253bf80d46497eadfaa3d78cac8fc3e66f9b61b Mon Sep 17 00:00:00 2001 From: Aliaksandr Pinchuk Date: Thu, 24 Apr 2025 23:28:55 +0200 Subject: [PATCH] Fix: Address Sonar Blocker issues --- .../openapidiff/core/AllOfOneOfDiffTest.java | 2 +- .../openapidiff/core/SchemaDiffTest.java | 11 +++++++-- .../schema-props-type-handling-1.yaml | 23 +++++++++++++++++++ .../schema-props-type-handling-2.yaml | 23 +++++++++++++++++++ 4 files changed, 56 insertions(+), 3 deletions(-) create mode 100644 core/src/test/resources/schemaDiff/schema-props-type-handling-1.yaml create mode 100644 core/src/test/resources/schemaDiff/schema-props-type-handling-2.yaml diff --git a/core/src/test/java/org/openapitools/openapidiff/core/AllOfOneOfDiffTest.java b/core/src/test/java/org/openapitools/openapidiff/core/AllOfOneOfDiffTest.java index ec1bcfc53..cd43c5961 100644 --- a/core/src/test/java/org/openapitools/openapidiff/core/AllOfOneOfDiffTest.java +++ b/core/src/test/java/org/openapitools/openapidiff/core/AllOfOneOfDiffTest.java @@ -9,6 +9,6 @@ public class AllOfOneOfDiffTest { @Test void allOfReferringToOneOfSchemasAreSupported() { ChangedOpenApi diff = OpenApiCompare.fromLocations("issue-317_1.json", "issue-317_2.json"); - assertThat(diff.isCoreChanged().isUnchanged()); + assertThat(diff.isCoreChanged().isUnchanged()).isTrue(); } } diff --git a/core/src/test/java/org/openapitools/openapidiff/core/SchemaDiffTest.java b/core/src/test/java/org/openapitools/openapidiff/core/SchemaDiffTest.java index d918fa995..2d1d0a4d0 100644 --- a/core/src/test/java/org/openapitools/openapidiff/core/SchemaDiffTest.java +++ b/core/src/test/java/org/openapitools/openapidiff/core/SchemaDiffTest.java @@ -41,8 +41,15 @@ public void schemaPropertyDefaultChanged() { public void schemaPropertyTypeChanged() { ChangedOpenApi changedOpenApi = OpenApiCompare.fromLocations( - "schemaDiff/schema-props-defaults-handling-1.yaml", - "schemaDiff/schema-props-defaults-handling-2.yaml"); + "schemaDiff/schema-props-type-handling-1.yaml", + "schemaDiff/schema-props-type-handling-2.yaml"); + + assertEquals(1, changedOpenApi.getChangedOperations().size()); + assertEquals(1, changedOpenApi.getChangedSchemas().size()); + ChangedSchema changedSchema = changedOpenApi.getChangedSchemas().get(0); + assertEquals(1, changedSchema.getChangedProperties().size()); + assertTrue(changedSchema.getChangedProperties().containsKey("field1")); + assertTrue(changedSchema.getChangedProperties().get("field1").isChangedType()); } @Test // issue #485 diff --git a/core/src/test/resources/schemaDiff/schema-props-type-handling-1.yaml b/core/src/test/resources/schemaDiff/schema-props-type-handling-1.yaml new file mode 100644 index 000000000..37d612e33 --- /dev/null +++ b/core/src/test/resources/schemaDiff/schema-props-type-handling-1.yaml @@ -0,0 +1,23 @@ +openapi: 3.0.0 +info: + title: Schema Type Handling Test - Before + version: 1.0.0 +paths: + /test: + post: + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TestSchema' + responses: + '200': + description: OK +components: + schemas: + TestSchema: + type: object + properties: + field1: + type: string + description: A field that will change type diff --git a/core/src/test/resources/schemaDiff/schema-props-type-handling-2.yaml b/core/src/test/resources/schemaDiff/schema-props-type-handling-2.yaml new file mode 100644 index 000000000..efe131d80 --- /dev/null +++ b/core/src/test/resources/schemaDiff/schema-props-type-handling-2.yaml @@ -0,0 +1,23 @@ +openapi: 3.0.0 +info: + title: Schema Type Handling Test - After + version: 1.0.0 +paths: + /test: + post: + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TestSchema' + responses: + '200': + description: OK +components: + schemas: + TestSchema: + type: object + properties: + field1: + type: integer # Changed from string to integer + description: A field that has changed type