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); }
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"); } }