public void MethodInfo_Overrides_ContainsOverridesInformation() { var tObject = Corlib.MainModule.TypeSystem.Object; var trList = new TypeReference("System.Collections.Generic", "List`1", tObject.Module, tObject.Scope, false); var tiList = TypeInfo.GetTypeInformation(trList); var getEnumeratorMethods = (from member in tiList.Members.Values where member.Name.Contains("GetEnumerator") select member).ToArray(); Assert.AreEqual(1, getEnumeratorMethods.Count( (m) => !m.Overrides.Any() ), "Expected one GetEnumerator method to have no overrides"); Assert.AreEqual(1, getEnumeratorMethods.Count( (m) => m.Overrides.Any( (o) => o.InterfaceType.FullName == "System.Collections.IEnumerable" ) ), "Expected one GetEnumerator method to override IEnumerable"); Assert.AreEqual(1, getEnumeratorMethods.Count( (m) => m.Overrides.Any( (o) => o.InterfaceType.FullName == "System.Collections.Generic.IEnumerable`1<T>" ) ), "Expected one GetEnumerator method to override IEnumerable`1"); }