Ejemplo n.º 1
0
        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);
                            }
                        }
                                   );
                    }
                               );
                }
                           );
            }
                       );
        }