Exemplo n.º 1
0
        public void VerifyMemberOverloadUsesSubsetOfAllTypeVerifiers()
        {
            PropertyInfo propertyToVerify = typeof(string).GetProperty("Length");

            IMemberVerifier verifier1 = Substitute.For <IMemberVerifier>();

            verifier1.Aspects.Returns(new[] { MemberVerificationAspect.PropertyType });
            IMemberVerifier verifier2 = Substitute.For <IMemberVerifier>();

            verifier2.Aspects.Returns(new[] { MemberVerificationAspect.PropertyIsStatic });
            IStructureService service = Substitute.For <IStructureService>();

            service.VerifyMember(propertyToVerify, new[] { verifier1, verifier2 }, MemberVerificationAspect.PropertyType);

            service.Received().VerifyMember(propertyToVerify, new[] { verifier1 });
        }
Exemplo n.º 2
0
        public void VerifyMemberOverloadUsesAllMemberVerifiers()
        {
            PropertyInfo propertyToVerify = typeof(string).GetProperty("Length");
            // The verifiers must have aspects as StructureService depends on aspect to use the verifier
            IMemberVerifier verifier1 = Substitute.For <IMemberVerifier>();

            verifier1.Aspects.Returns(new[] { MemberVerificationAspect.PropertyType });
            IMemberVerifier verifier2 = Substitute.For <IMemberVerifier>();

            verifier2.Aspects.Returns(new[] { MemberVerificationAspect.PropertyIsStatic });
            StructureService service = new StructureService("TestTools_Tests.Structure", "TestTools_Tests.Structure");

            service.VerifyMember(propertyToVerify, new[] { verifier1, verifier2 });

            verifier1.Received().Verify(propertyToVerify, propertyToVerify);
            verifier2.Received().Verify(propertyToVerify, propertyToVerify);
        }
Exemplo n.º 3
0
        public void VerifyMember(MemberInfo original, IMemberVerifier[] verifiers)
        {
            Type       translatedType   = TranslateType(original.DeclaringType);
            MemberInfo translatedMember = TranslateMember(translatedType, original);

            foreach (MemberVerificationAspect aspect in MemberVerificationOrder)
            {
                IMemberVerifier defaultVerifier = verifiers.FirstOrDefault(ver => ver.Aspects.Contains(aspect));
                IMemberVerifier verifier        = original.GetCustomVerifier(aspect) ?? defaultVerifier;

                if (verifier != null)
                {
                    verifier.Verifier = StructureVerifier;
                    verifier.Service  = this;
                    verifier.Verify(original, translatedMember);
                }
            }
        }