public void CanUpdatePaidTicketItems()
        {
            var ticket        = SetupTicket();
            var orderSelector = new OrderSelector();

            orderSelector.UpdateTicket(ticket);
            orderSelector.Select(1, 5);
            orderSelector.Select(2, 6);
            orderSelector.PersistSelectedItems();
            orderSelector.PersistTicket();
            Assert.AreEqual(2, ticket.PaidItems.Sum(x => x.Quantity));
        }
        public void CanUpdateHalfPaidTicket()
        {
            var ticket        = SetupTicket();
            var orderSelector = new OrderSelector();

            orderSelector.UpdateTicket(ticket);
            orderSelector.Select(1, 5);
            orderSelector.Select(2, 6);
            orderSelector.PersistSelectedItems();
            orderSelector.PersistTicket();

            orderSelector = new OrderSelector();
            orderSelector.UpdateTicket(ticket);
            Assert.AreEqual(28 - 11, orderSelector.RemainingTotal);
        }
        public void CanUpdateHalfPaidTicket()
        {
            var ticket = SetupTicket();
            var orderSelector = new OrderSelector();
            orderSelector.UpdateTicket(ticket);
            orderSelector.Select(1, 5);
            orderSelector.Select(2, 6);
            orderSelector.PersistSelectedItems();
            orderSelector.PersistTicket();

            orderSelector = new OrderSelector();
            orderSelector.UpdateTicket(ticket);
            Assert.AreEqual(28 - 11, orderSelector.RemainingTotal);
        }
 public void CanUpdatePaidTicketItems()
 {
     var ticket = SetupTicket();
     var orderSelector = new OrderSelector();
     orderSelector.UpdateTicket(ticket);
     orderSelector.Select(1, 5);
     orderSelector.Select(2, 6);
     orderSelector.PersistSelectedItems();
     orderSelector.PersistTicket();
     Assert.AreEqual(2, ticket.PaidItems.Sum(x => x.Quantity));
 }
    
    class SenderCheck : AbsSender
    { 
 Sender sender = new Sender(); 
 OrderSelector orderSelector = new OrderSelector(); 
 IOrderType orderType; 
 DeliveryContext deliveryContext = new DeliveryContext(); 
 public override void SendOrder(Client client, float weight, int amount, IDeliveryType delivery) 

                                             {
                                                 
 deliveryContext._weight = weight; 
 deliveryContext._amount = amount; 
 deliveryContext.SetDeliveryType(delivery); 
 orderType = orderSelector.Select(weight); 
            if (client.Pay(orderType.GetOrderSum(weight, deliveryContext.DelivetyCost)))

                                                 {
                                                     
            {
                                                         
 sender.SendOrder(client, weight, amount, delivery); 
 client.GetOrder(); 

                                                     }
                                                 }
                                                 
 else
            {
                                                     
 Console.WriteLine("Client is not payed for order"); 

                                                 } 

                                             }