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)); } }
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); }
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); }
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); }