Esempio n. 1
0
        public static void ValidateVideoRule()
        {
            Payment payment = new Payment()
            {
                Type = PaymentType.Video
            };
            PaymentRuleTestBuilder builder = new PaymentRuleTestBuilder();

            builder.AddPassingRule(typeof(VideoRule));

            PaymentRuleValidator validator = new PaymentRuleValidator();

            validator.ValidateAllRules(payment, builder);
        }
        public void ValidateAllRules(Payment payment, PaymentRuleTestBuilder builder)
        {
            foreach (Type type in builder.GetPassingTypes())
            {
                IPaymentRule rule = (IPaymentRule)System.Activator.CreateInstance(type);
                Assert.True(rule.IsValid(payment));
            }

            foreach (Type type in builder.GetFailingTypes())
            {
                IPaymentRule rule = (IPaymentRule)System.Activator.CreateInstance(type);
                Assert.False(rule.IsValid(payment));
            }
        }
Esempio n. 3
0
        public static void ValidatePhysicalProductRule()
        {
            Payment payment = new Payment()
            {
                Type = PaymentType.PhysicalProduct
            };
            PaymentRuleTestBuilder builder = new PaymentRuleTestBuilder();

            builder.AddPassingRule(typeof(PhysicalProductOrBookRule))
            .AddPassingRule(typeof(PhysicalProductRule));

            PaymentRuleValidator validator = new PaymentRuleValidator();

            validator.ValidateAllRules(payment, builder);
        }
Esempio n. 4
0
        public static void ValidateLearningToSkiVideoRule()
        {
            Payment payment = new Payment()
            {
                Type = PaymentType.Video, Reference = "Learning to Ski", DateRequested = new DateTime(2017, 01, 01)
            };
            PaymentRuleTestBuilder builder = new PaymentRuleTestBuilder();

            builder.AddPassingRule(typeof(VideoRule))
            .AddPassingRule(typeof(LearningToSkiRule));

            PaymentRuleValidator validator = new PaymentRuleValidator();

            validator.ValidateAllRules(payment, builder);
        }
Esempio n. 5
0
        public static void ValidateMembershipUpgrade()
        {
            Payment payment = new Payment()
            {
                Type = PaymentType.MembershipUpgrade
            };
            PaymentRuleTestBuilder builder = new PaymentRuleTestBuilder();

            builder.AddPassingRule(typeof(MembershipUpgradeRule))
            .AddPassingRule(typeof(AnyMembershipRule));

            PaymentRuleValidator validator = new PaymentRuleValidator();

            validator.ValidateAllRules(payment, builder);
        }