public void ValidateRules() { var productbk = new ProdcutBook(); var result = productbk.Handle("book"); // Assert Assert.AreEqual("Create duplicate packing slip for the royalty department", result); }
public void RuleNotMatch() { var phyproduct = new ProdcutBook(); var result = phyproduct.Handle("Failure"); // Assert Assert.AreNotEqual("Create duplicate packing slip for the royalty department", result); }
/// <summary> /// Pass the request to handler according to Payment Type /// </summary> private static void RuleHandler() { AbstractHandler abstractHandler = null; var email = new SendEmail(); var compayment = new CommissionPayment(); var ctx = new Context() { PaymentType = ReadInputRequest() }; var handler = ctx.PaymentType; switch (handler) { case "PhysicalProduct": abstractHandler = new PhysicalProduct(); abstractHandler.SetNext(compayment); break; case "ProductBook": abstractHandler = new ProdcutBook(); abstractHandler.SetNext(compayment); break; case "Membership": abstractHandler = new Membership(); abstractHandler.SetNext(email); break; case "UpgradeMembership": abstractHandler = new UpgradeMembership(); abstractHandler.SetNext(email); break; case "Video": abstractHandler = new Video(); break; default: break; } RuleEngOrchestrator.ClientCode(abstractHandler); Console.WriteLine(); }