static void Main(string[] args) { Payment purchaseOne = new Payment(2.5m, "Book", 250); Payment purchaseTwo = new Payment(10m, "Membership", 251); Payment purchaseThree = new Payment(17m, "Physical", 252); Payment purchaseFour = new Payment(5.75m, "UpgradeMembership", 253); Payment purchaseFive = new Payment(7.59m, "Video", 254); BasePaymentProcessing baseHandler = new PackingSlipHandler(); BasePaymentProcessing membershipHandler = new MembershipHandler(); BasePaymentProcessing upgradeMembershipHandler = new UpgradeMembershipHandler(); BasePaymentProcessing duplicateSlipHandler = new DuplicatePackingSlipHandler(); BasePaymentProcessing commisionPaymentHandler = new CommissionPaymentHandler(); BasePaymentProcessing videoPaymentHandler = new VideoPaymentHandler(); baseHandler.SetNextHandler(duplicateSlipHandler); baseHandler.SetNextHandler(commisionPaymentHandler); duplicateSlipHandler.SetNextHandler(membershipHandler); membershipHandler.SetNextHandler(upgradeMembershipHandler); commisionPaymentHandler.SetNextHandler(videoPaymentHandler); //Calling chain of responsibility baseHandler.ProcessPayment(purchaseOne); membershipHandler.ProcessPayment(purchaseTwo); baseHandler.ProcessPayment(purchaseThree); membershipHandler.ProcessPayment(purchaseFour); baseHandler.ProcessPayment(purchaseFive); Console.ReadKey(); }
public Scenarios() { _manager = new Mock <IBusinessLogic>(); _logger = new Mock <ILogger>(); handlerDelegate = new Mock <HandlerDelegate>(); responseHandler = new ResponseHandler(logger: _logger.Object); processCommissionPaymentHandler = new ProcessCommissionPaymentHandler(logger: _logger.Object, manager: _manager.Object); physicalProductPackingSlipHandler = new PhysicalProductPackingSlipHandler(logger: _logger.Object, manager: _manager.Object); createDuplicateSlip = new CreateDuplicateSlipForRoyaldepartmentHandler(logger: _logger.Object, manager: _manager.Object); notifyEmailHandler = new NotifyEmailHandler(logger: _logger.Object, manager: _manager.Object); activateMemeberShipHandler = new ActivateMemeberShipHandler(logger: _logger.Object, manager: _manager.Object); upgradeMembershipHandler = new UpgradeMembershipHandler(logger: _logger.Object, manager: _manager.Object); addFirstAidVideoHandler = new AddFirstAidVideoHandler(logger: _logger.Object, manager: _manager.Object); }
private async Task <OrderEngine> CreateOrderEngine() { packageSlipMock = new Mock <IPackageSlipRepository>(); royaltySlipMock = new Mock <IPackageSlipRepository>(); membershipMock = new Mock <IMembershipRepository>(); emailMock = new Mock <IEmailRepository>(); comissionMock = new Mock <IComissionRepository>(); var orderSlipHandler = new OrderSlipHandler(packageSlipMock.Object); var royaltySlipHandler = new RoyaltySlipHandler(royaltySlipMock.Object); var upgradeMembershipHandler = new UpgradeMembershipHandler(membershipMock.Object, emailMock.Object); var activateMembershipHandler = new ActivateMembershipHandler(membershipMock.Object, emailMock.Object); var comissionHandler = new ComissionHandler(comissionMock.Object); await upgradeMembershipHandler.SetNext(comissionHandler); await activateMembershipHandler.SetNext(upgradeMembershipHandler); await orderSlipHandler.SetNext(activateMembershipHandler); await royaltySlipHandler.SetNext(orderSlipHandler); return(new OrderEngine(royaltySlipHandler)); }