private static void AssertIsMarked(MemberInfo member, int value) { MarkerAttribute marker = member.GetCustomAttribute <MarkerAttribute>(inherit: false); Assert.NotNull(marker); Assert.Equal(value, marker.Value); }
private static bool HasSameMarkAs(this MemberInfo m1, MemberInfo m2) { MarkerAttribute marker1 = m1.GetCustomAttribute <MarkerAttribute>(); Assert.NotNull(marker1); MarkerAttribute marker2 = m2.GetCustomAttribute <MarkerAttribute>(); Assert.NotNull(marker2); return(marker1.Mark == marker2.Mark); }
private static void CrossTestHasSameMethodDefinitionAs(params Type[] types) { Assert.All(types, delegate(Type type1) { Assert.All(type1.GenerateTestMemberList(), delegate(MemberInfo m1) { MarkerAttribute mark1 = m1.GetCustomAttribute <MarkerAttribute>(); if (mark1 == null) { return; } Assert.All(types, delegate(Type type2) { Assert.All(type2.GenerateTestMemberList(), delegate(MemberInfo m2) { MarkerAttribute mark2 = m2.GetCustomAttribute <MarkerAttribute>(); if (mark2 == null) { return; } bool hasSameMetadata = m1.HasSameMetadataDefinitionAs(m2); Assert.Equal(hasSameMetadata, m2.HasSameMetadataDefinitionAs(m1)); if (hasSameMetadata) { Assert.Equal(mark1.Mark, mark2.Mark); } else { Assert.NotEqual(mark1.Mark, mark2.Mark); } } ); } ); } ); } ); }