Beispiel #1
0
        private static void Main(string[] args)
        {
            var order = new Order();
            Console.WriteLine("good user story");
            order.Place();
            order.Pay();
            order.Ship();
            Console.WriteLine("bad user story");
            order = new Order();
            try
            {
                order.Pay();
            }
            catch (ArgumentException e)
            {
                Console.WriteLine(e.Message);
            }
            try
            {
                order.Ship();
            }
            catch (ArgumentException e)
            {
                Console.WriteLine(e.Message);
            }
            try
            {
                order.Place();
            }
            catch (ArgumentException e)
            {
                Console.WriteLine(e.Message);
            }
            try
            {
                order.Ship();
            }
            catch (ArgumentException e)
            {
                Console.WriteLine(e.Message);
            }
            try
            {
                order.Pay();
            }
            catch (ArgumentException e)
            {
                Console.WriteLine(e.Message);
            }

            Console.ReadKey();
        }
Beispiel #2
0
 public void ChangeState(Order order, IOrderState newState)
 {
     order.ChangeState(newState);
 }
Beispiel #3
0
 public void Ship(Order order)
 {
     throw new ArgumentException("Order must be Placed before Shipment");
 }
Beispiel #4
0
 public void Place(Order order)
 {
     ChangeState(order, new OrderPlaced());
 }
Beispiel #5
0
 public void Pay(Order order)
 {
     throw new ArgumentException("Order must be Placed before Payment");
 }
Beispiel #6
0
 public void Ship(Order order)
 {
     throw new ArgumentException("order already shipped");
 }
Beispiel #7
0
 public void Place(Order order)
 {
     throw new ArgumentException("order shipped. There no reason to place it again");
 }
Beispiel #8
0
 public void Pay(Order order)
 {
     throw new ArgumentException("order shipped, what you suppose to pay?");
 }
Beispiel #9
0
 public void Ship(Order order)
 {
     ChangeState(order, new OrderShipped());
 }
Beispiel #10
0
 public void Place(Order order)
 {
     throw new ArgumentException("Order cant be placed. It's already payed");
 }