public void CanHandleMultipleUpdates() { var ticket = SetupTicket(); var orderSelector = new OrderSelector(); orderSelector.UpdateTicket(ticket); Assert.AreEqual(28, orderSelector.RemainingTotal); orderSelector.UpdateTicket(ticket); Assert.AreEqual(28, orderSelector.RemainingTotal); }
public void CanUpdatesTicketCorrectly() { var ticket = new Ticket(); var orderSelector = new OrderSelector(); orderSelector.UpdateTicket(ticket); Assert.AreEqual(ticket, orderSelector.SelectedTicket); }
public void CanHandleTax() { var taxTemplate = new TaxTemplate { Name = "Tax", Rate = 10, AccountTransactionType = AccountTransactionType.Default }; var taxTemplates = new List<TaxTemplate> { taxTemplate }; var tost = new MenuItem("Tost") { Id = 1 }; var hamburger = new MenuItem("Hamburger") { Id = 2 }; var ticket = TicketBuilder.Create(TicketType.Default, Department.Default).Build(); var order = ticket.AddOrder(AccountTransactionType.Default, Department.Default, "Emre", tost, taxTemplates, new MenuItemPortion { Price = 5, Name = "Adet" }, "", null); order.Quantity = 2; order.PortionCount = 2; ticket.AddOrder(AccountTransactionType.Default, Department.Default, "Emre", tost, taxTemplates, new MenuItemPortion { Price = 5, Name = "Adet" }, "", null); ticket.AddOrder(AccountTransactionType.Default, Department.Default, "Emre", hamburger, taxTemplates, new MenuItemPortion { Price = 7, Name = "Adet" }, "", null); ticket.AddOrder(AccountTransactionType.Default, Department.Default, "Emre", hamburger, taxTemplates, new MenuItemPortion { Price = 6, Name = "Adet" }, "", null); ticket.AddCalculation(new CalculationType() { AccountTransactionType = AccountTransactionType.Default, DecreaseAmount = true }, 10); ticket.Recalculate(); var orderSelector = new OrderSelector(); orderSelector.UpdateTicket(ticket); Assert.AreEqual(ticket.GetSum(), orderSelector.Selectors.Sum(x => x.TotalPrice)); ticket.TaxIncluded = true; orderSelector = new OrderSelector(); orderSelector.UpdateTicket(ticket); Assert.AreEqual(ticket.GetSum(), orderSelector.Selectors.Sum(x => x.TotalPrice)); }
private static OrderSelector SetupOrderSelector() { var ticket = SetupTicket(); var orderSelector = new OrderSelector(); orderSelector.UpdateTicket(ticket); return orderSelector; }
private static OrderSelector SetupOrderSelector() { var ticket = SetupTicket(); var orderSelector = new OrderSelector(); orderSelector.UpdateTicket(ticket); return(orderSelector); }
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 CanHandleTax() { var taxTemplate = new TaxTemplate { Name = "Tax", Rate = 10, AccountTransactionType = AccountTransactionType.Default }; var taxTemplates = new List <TaxTemplate> { taxTemplate }; var tost = new MenuItem("Tost") { Id = 1 }; var hamburger = new MenuItem("Hamburger") { Id = 2 }; var ticket = TicketBuilder.Create(TicketType.Default, Department.Default).Build(); var order = ticket.AddOrder(AccountTransactionType.Default, Department.Default, "Emre", tost, taxTemplates, new MenuItemPortion { Price = 5, Name = "Adet" }, "", null); order.Quantity = 2; order.PortionCount = 2; ticket.AddOrder(AccountTransactionType.Default, Department.Default, "Emre", tost, taxTemplates, new MenuItemPortion { Price = 5, Name = "Adet" }, "", null); ticket.AddOrder(AccountTransactionType.Default, Department.Default, "Emre", hamburger, taxTemplates, new MenuItemPortion { Price = 7, Name = "Adet" }, "", null); ticket.AddOrder(AccountTransactionType.Default, Department.Default, "Emre", hamburger, taxTemplates, new MenuItemPortion { Price = 6, Name = "Adet" }, "", null); ticket.AddCalculation(new CalculationType() { AccountTransactionType = AccountTransactionType.Default, DecreaseAmount = true }, 10); ticket.Recalculate(); var orderSelector = new OrderSelector(); orderSelector.UpdateTicket(ticket); Assert.AreEqual(ticket.GetSum(), orderSelector.Selectors.Sum(x => x.TotalPrice)); ticket.TaxIncluded = true; orderSelector = new OrderSelector(); orderSelector.UpdateTicket(ticket); Assert.AreEqual(ticket.GetSum(), orderSelector.Selectors.Sum(x => x.TotalPrice)); }
public void DoesTicketDiscountsWorks() { var ticket = SetupTicket(); var calculationType = new CalculationType { AccountTransactionType = AccountTransactionType.Default, DecreaseAmount = true }; ticket.AddCalculation(calculationType, 10); var orderSelector = new OrderSelector(); orderSelector.UpdateTicket(ticket); Assert.AreEqual(28 - 2.8, orderSelector.Selectors.Sum(x => x.TotalPrice)); }
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); }