static void Main(string[] args) { Approver larry = new MiddleManager(); Approver bob = new VicePresident(); Approver joe = new President(); Approver end = new EndOfChain(); larry.SetSuccessor(bob); bob.SetSuccessor(joe); joe.SetSuccessor(end); Purchase purchase1 = new Purchase { Amount = 100, Number = 1, Purpose = "R&D (Rest&Darts)" }; Purchase purchase2 = new Purchase { Amount = 5000, Number = 2, Purpose = "Moose hunting" }; Purchase purchase3 = new Purchase { Amount = 1000000, Number = 3, Purpose = "Bribery" }; Console.WriteLine("Response for {0}: {1}", purchase1.ToString(), larry.ProcessRequest(purchase1)); Console.WriteLine("Response for {0}: {1}", purchase2.ToString(), larry.ProcessRequest(purchase2)); Console.WriteLine("Response for {0}: {1}", purchase3.ToString(), larry.ProcessRequest(purchase3)); Console.ReadLine(); }
public void TestAddSameMiddle() { var middle = new MiddleManager(); middle.AddMiddle("a", Guid.NewGuid(), t => t); middle.AddMiddle("a", Guid.NewGuid(), t => t); var count = middle.GetMiddlesList().Count(); Assert.AreEqual(1, count); }
public void TestIndexMiddle() { var middle = new MiddleManager(); middle.AddMiddle("a", Guid.NewGuid(), t => t); middle.IntertMiddle("b", Guid.NewGuid(), 1, t => t); var list = middle.GetMiddlesList(); var first = list.FirstOrDefault(t => t.MiddleName == "b"); Assert.AreEqual(1, first.Order); first = list.FirstOrDefault(t => t.MiddleName == "a"); Assert.AreEqual(2, first.Order); }
public void TestIndexMaxIntOrder() { var middle = new MiddleManager(); middle.AddMiddle("a", Guid.NewGuid(), t => t); middle.IntertMiddle("b", Guid.NewGuid(), int.MaxValue, t => t); middle.IntertMiddle("c", Guid.NewGuid(), int.MaxValue, t => t); var list = middle.GetMiddlesList(); var first = list.FirstOrDefault(t => t.MiddleName == "c"); Assert.AreEqual(int.MaxValue, first.Order); first = list.FirstOrDefault(t => t.MiddleName == "b"); Assert.AreEqual(int.MaxValue - 1, first.Order); middle.IntertMiddle("d", Guid.NewGuid(), int.MaxValue - 1, t => t); list = middle.GetMiddlesList(); first = list.FirstOrDefault(t => t.MiddleName == "b"); Assert.AreEqual(int.MaxValue - 2, first.Order); }
static void Main(string[] args) { Approver larry = new MiddleManager(); Approver bob = new VicePresident(); Approver joe = new President(); Approver end = new EndOfChain(); larry.SetSuccessor(bob); bob.SetSuccessor(joe); joe.SetSuccessor(end); Purchase purchase1 = new Purchase { Amount = 100, Number = 1, Purpose = "R&D (Rest&Darts)" }; Purchase purchase2 = new Purchase { Amount = 5000, Number = 2, Purpose = "Moose hunting" }; Purchase purchase3 = new Purchase { Amount = 1000000, Number = 3, Purpose = "Bribery" }; Console.WriteLine("Response for {0}: {1}", purchase1.ToString(), larry.ProcessRequest(purchase1)); Console.WriteLine("Response for {0}: {1}", purchase2.ToString(), larry.ProcessRequest(purchase2)); Console.WriteLine("Response for {0}: {1}", purchase3.ToString(), larry.ProcessRequest(purchase3)); Console.ReadLine(); }