@@ -31,7 +31,7 @@ public ComposedSchemaDiffResult(OpenApiDiff openApiDiff) {
31
31
32
32
@ Override
33
33
public Optional <ChangedSchema > diff (HashSet <String > refSet , Components leftComponents , Components rightComponents , Schema left , Schema right , DiffContext context ) {
34
- if (left instanceof ComposedSchema ) {
34
+ if (left instanceof ComposedSchema ) {
35
35
ComposedSchema leftComposedSchema = (ComposedSchema ) left ;
36
36
ComposedSchema rightComposedSchema = (ComposedSchema ) right ;
37
37
if (CollectionUtils .isNotEmpty (leftComposedSchema .getOneOf ())
@@ -53,7 +53,8 @@ public Optional<ChangedSchema> diff(HashSet<String> refSet, Components leftCompo
53
53
Map <String , String > rightMapping = getMapping (rightComposedSchema );
54
54
55
55
ChangedOneOfSchema changedOneOfSchema = new ChangedOneOfSchema (leftMapping , rightMapping , context );
56
- MapKeyDiff <String , String > mappingDiff = MapKeyDiff .diff (leftMapping , rightMapping );
56
+ MapKeyDiff <String , Schema > mappingDiff = MapKeyDiff .diff (getSchema (leftComponents , leftMapping ),
57
+ getSchema (rightComponents , rightMapping ));
57
58
changedOneOfSchema .setIncreasedMapping (mappingDiff .getIncreased ());
58
59
changedOneOfSchema .setMissingMapping (mappingDiff .getMissing ());
59
60
@@ -76,6 +77,12 @@ public Optional<ChangedSchema> diff(HashSet<String> refSet, Components leftCompo
76
77
}
77
78
}
78
79
80
+ private Map <String , Schema > getSchema (Components components , Map <String , String > mapping ) {
81
+ Map <String , Schema > result = new HashMap <>();
82
+ mapping .forEach ((key , value ) -> result .put (key , refPointer .resolveRef (components , new Schema (), value )));
83
+ return result ;
84
+ }
85
+
79
86
private Map <String , String > getMapping (ComposedSchema composedSchema ) {
80
87
Map <String , String > reverseMapping = new HashMap <>();
81
88
for (Schema schema : composedSchema .getOneOf ()) {
0 commit comments