Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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();
        }