public static void MultipleRightsMissingMembersAreReported() { string leftSyntax = @" namespace CompatTests { public class First { public class FirstNested { public string MyProperty { get; } public class SecondNested { public int MyMethod() => 0; public class ThirdNested { public string MyField; } } } } } "; string[] rightSyntaxes = new[] { @" namespace CompatTests { public class First { public class FirstNested { public string MyProperty { get; } public class SecondNested { public class ThirdNested { } } } } } ", @" namespace CompatTests { public class First { public class FirstNested { public class SecondNested { public int MyMethod() => 0; public class ThirdNested { public string MyField; } } } } } ", @" namespace CompatTests { public class First { public class FirstNested { public string MyProperty { get; } public class SecondNested { public class ThirdNested { public string MyField; } } } } } " }; ApiComparer differ = new(); ElementContainer <IAssemblySymbol> left = new(SymbolFactory.GetAssemblyFromSyntax(leftSyntax), new MetadataInformation(string.Empty, string.Empty, "ref")); IList <ElementContainer <IAssemblySymbol> > right = SymbolFactory.GetElementContainersFromSyntaxes(rightSyntaxes); IEnumerable <(MetadataInformation, MetadataInformation, IEnumerable <CompatDifference>)> differences = differ.GetDifferences(left, right); CompatDifference[][] expectedDiffs = { new[] { new CompatDifference(DiagnosticIds.MemberMustExist, string.Empty, DifferenceType.Removed, "F:CompatTests.First.FirstNested.SecondNested.ThirdNested.MyField"), new CompatDifference(DiagnosticIds.MemberMustExist, string.Empty, DifferenceType.Removed, "M:CompatTests.First.FirstNested.SecondNested.MyMethod"), }, new[] { new CompatDifference(DiagnosticIds.MemberMustExist, string.Empty, DifferenceType.Removed, "M:CompatTests.First.FirstNested.get_MyProperty"), }, new[] { new CompatDifference(DiagnosticIds.MemberMustExist, string.Empty, DifferenceType.Removed, "M:CompatTests.First.FirstNested.SecondNested.MyMethod"), }, }; AssertExtensions.MultiRightResult(left.MetadataInformation, expectedDiffs, differences); }