@@ -31,7 +31,7 @@ public ComposedSchemaDiffResult(OpenApiDiff openApiDiff) {
3131
3232 @ Override
3333 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 ) {
3535 ComposedSchema leftComposedSchema = (ComposedSchema ) left ;
3636 ComposedSchema rightComposedSchema = (ComposedSchema ) right ;
3737 if (CollectionUtils .isNotEmpty (leftComposedSchema .getOneOf ())
@@ -53,7 +53,8 @@ public Optional<ChangedSchema> diff(HashSet<String> refSet, Components leftCompo
5353 Map <String , String > rightMapping = getMapping (rightComposedSchema );
5454
5555 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 ));
5758 changedOneOfSchema .setIncreasedMapping (mappingDiff .getIncreased ());
5859 changedOneOfSchema .setMissingMapping (mappingDiff .getMissing ());
5960
@@ -76,6 +77,12 @@ public Optional<ChangedSchema> diff(HashSet<String> refSet, Components leftCompo
7677 }
7778 }
7879
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+
7986 private Map <String , String > getMapping (ComposedSchema composedSchema ) {
8087 Map <String , String > reverseMapping = new HashMap <>();
8188 for (Schema schema : composedSchema .getOneOf ()) {
0 commit comments