Skip to content

Commit a5c1c20

Browse files
committed
Update UnitTestSwaggerUtils to deterministic
Update TestSwagger without adding dependencies Update UnitTestSwaggerUtils.java
1 parent 842c55e commit a5c1c20

File tree

1 file changed

+16
-2
lines changed
  • swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/unittest

1 file changed

+16
-2
lines changed

swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/unittest/UnitTestSwaggerUtils.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,10 @@
2727
import org.junit.jupiter.api.Assertions;
2828

2929
import com.fasterxml.jackson.core.JsonProcessingException;
30+
import com.fasterxml.jackson.databind.JsonNode;
31+
import com.fasterxml.jackson.databind.ObjectMapper;
3032
import com.fasterxml.jackson.databind.ObjectWriter;
33+
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
3134

3235
import io.swagger.v3.core.util.Yaml;
3336
import io.swagger.v3.oas.models.OpenAPI;
@@ -81,8 +84,19 @@ public static SwaggerGenerator testSwagger(String resPath, Class<?> cls, String.
8184
expectSchema = expectSchema.substring(offset + 4);
8285
}
8386

84-
if (!Objects.equals(expectSchema, schema)) {
85-
Assertions.assertEquals(expectSchema, schema);
87+
try {
88+
ObjectMapper yaml = new ObjectMapper(new YAMLFactory());
89+
JsonNode expected = yaml.readTree(expectSchema);
90+
JsonNode actual = yaml.readTree(schema);
91+
92+
if (!actual.equals(expected)) {
93+
ObjectMapper json = new ObjectMapper();
94+
String expectedPretty = json.writerWithDefaultPrettyPrinter().writeValueAsString(expected);
95+
String actualPretty = json.writerWithDefaultPrettyPrinter().writeValueAsString(actual);
96+
Assertions.fail("OpenAPI mismatch.\n=== EXPECTED ===\n" + expectedPretty + "\n=== ACTUAL ===\n" + actualPretty);
97+
}
98+
} catch (Exception e) {
99+
Assertions.fail("Failed to parse/compare OpenAPI YAML: " + e.getMessage(), e);
86100
}
87101

88102
return generator;

0 commit comments

Comments
 (0)