Skip to content

Commit 7d62852

Browse files
authored
fix for issue 814 (#836)
* changed equal validation for changed example to properly validate arrays of primitive types changed equal validation for changed example to properly validate arrays of primitive types * removed unnecessary import from test class * proposed new solution with deepEquals on Objects, fix also added to ChangedExamples.java, Fixed suggestion from copilot, grammatical error * formatting fix formatting fix * moved test from ConsoleRenderTest to SchemaDiffTest class as suggested in review * Moved test resource to proper location
1 parent 8ccc28b commit 7d62852

File tree

6 files changed

+48
-4
lines changed

6 files changed

+48
-4
lines changed

core/src/main/java/org/openapitools/openapidiff/core/model/ChangedExample.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,10 @@ public void setRightExample(Object rightExample) {
3030

3131
@Override
3232
public DiffResult isChanged() {
33-
if (!Objects.equals(leftExample, rightExample)) {
33+
if (!Objects.deepEquals(leftExample, rightExample)) {
3434
return DiffResult.METADATA;
3535
}
36+
3637
return DiffResult.NO_CHANGES;
3738
}
3839

core/src/main/java/org/openapitools/openapidiff/core/model/ChangedExamples.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public void setRightExamples(Object rightExamples) {
3030

3131
@Override
3232
public DiffResult isChanged() {
33-
if (!Objects.equals(leftExamples, rightExamples)) {
33+
if (!Objects.deepEquals(leftExamples, rightExamples)) {
3434
return DiffResult.METADATA;
3535
}
3636
return DiffResult.NO_CHANGES;

core/src/main/java/org/openapitools/openapidiff/core/output/AsciidocRender.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public void render(ChangedOpenApi diff, OutputStreamWriter outputStreamWriter) {
3434
diff.getNewSpecOpenApi().getInfo().getVersion()));
3535
safelyAppend(outputStreamWriter, System.lineSeparator());
3636
safelyAppend(outputStreamWriter, System.lineSeparator());
37-
safelyAppend(outputStreamWriter, "NOTE: No differences. Specifications are equivalents");
37+
safelyAppend(outputStreamWriter, "NOTE: No differences. Specifications are equivalent");
3838
} else {
3939
safelyAppend(
4040
outputStreamWriter,

core/src/main/java/org/openapitools/openapidiff/core/output/ConsoleRender.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public class ConsoleRender implements Render {
2727
public void render(ChangedOpenApi diff, OutputStreamWriter outputStreamWriter) {
2828
this.diff = diff;
2929
if (diff.isUnchanged()) {
30-
safelyAppend(outputStreamWriter, "No differences. Specifications are equivalents");
30+
safelyAppend(outputStreamWriter, "No differences. Specifications are equivalent");
3131
} else {
3232
safelyAppend(outputStreamWriter, bigTitle("Api Change Log"));
3333
safelyAppend(

core/src/test/java/org/openapitools/openapidiff/core/SchemaDiffTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -438,4 +438,21 @@ public void testAllOfDiff() {
438438
assertThat(changedSchema.getRequired().getMissing()).containsExactly("fieldA");
439439
assertThat(changedSchema.getRequired().getIncreased()).isEmpty();
440440
}
441+
442+
@Test
443+
void renderShowsNoDifferencesWhenCSVMediaTypeResponseExampleIsByteArray() {
444+
ChangedOpenApi changedOpenApi =
445+
OpenApiCompare.fromLocations(
446+
"schemaDiff/issue-828-binary-example-for-csv-media-type.yaml",
447+
"schemaDiff/issue-828-binary-example-for-csv-media-type.yaml");
448+
449+
assertThat(changedOpenApi).isNotNull();
450+
451+
assertThat(changedOpenApi.isUnchanged()).isTrue();
452+
assertThat(changedOpenApi.isDifferent()).isFalse();
453+
assertThat(changedOpenApi.isChanged()).isEqualTo(DiffResult.NO_CHANGES);
454+
assertThat(changedOpenApi.isIncompatible()).isFalse();
455+
assertThat(changedOpenApi.isCompatible()).isTrue();
456+
assertThat(changedOpenApi.isCoreChanged()).isEqualTo(DiffResult.NO_CHANGES);
457+
}
441458
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
openapi: 3.0.1
2+
info:
3+
title: My API
4+
version: 1.0.0
5+
paths:
6+
/api/v1/csv:
7+
get:
8+
operationId: someCsvEndpoint
9+
responses:
10+
"200":
11+
content:
12+
text/csv:
13+
schema:
14+
type: string
15+
format: binary
16+
example: Example
17+
description: Successful operation
18+
security:
19+
- Bearer: []
20+
summary: Download a CSV or something
21+
components:
22+
securitySchemes:
23+
Bearer:
24+
bearerFormat: JWT
25+
scheme: bearer
26+
type: http

0 commit comments

Comments
 (0)