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