public void CanViewSales() { //Given var store = new Store(); var address1 = new Address("test1", "city1"); store.Address = address1; var order1 = new Order(); var pizza1 = new Standard().Make() as Pizza; var pizza2 = new NewYork().Make() as Pizza; var pizzaList = new List <ISellable> { pizza1, pizza2 }; order1.AddToOrderItems(pizzaList); var addressedOrder = new AddressedOrder(address1, order1); store.StoreOrderHistory.Add(addressedOrder); //When var expectedTotal = pizza1.Price + pizza2.Price; var actual = store.ViewSales(); var expected = new List <Sale> { new Sale(order1, addressedOrder.Date, expectedTotal) }; //Then Assert.True(actual.Count == expected.Count && expectedTotal == actual[0].Price && expected[0].Date == actual[0].Date); }
public void CanViewUsers() { //Given var store = new Store(); var address1 = new Address("test1", "city1"); store.Address = address1; var order1 = new Order(); var addressedOrder = new AddressedOrder(address1, order1); var orderUser = new User(); orderUser.Name.First = "test"; orderUser.Name.Last = "user"; addressedOrder.OrderUser = orderUser; store.StoreOrderHistory.Add(addressedOrder); //When var actual = store.ViewUsers(); var expected = new List <User> { orderUser }; //Then Assert.True(expected.All(actual.Contains) && actual.Count == expected.Count); }
public void CanCreateEmptyInstance() { //Given var addressedOrder = new AddressedOrder(); //When //Then Assert.NotNull(addressedOrder); }
public IActionResult CreateOrder(string addressLine1, List <Topping> toppings, Crust crusts, Size sizes) { var userId = (int)TempData["UserID"]; TempData["UserID"] = userId; TempData.Keep(); if (ModelState.IsValid) { var currentAddress = _db.Addresses.Single(a => a.AddressLine == addressLine1); var currentUser = _db.Users.Single(u => u.UserId == userId); AddressedOrder finalOrder = currentUser.StartOrder(currentAddress); currentUser.AddToOrder("Standard", toppings, crusts, sizes); currentUser.FinishOrder(); _db.AddressedOrders.Add(finalOrder); _db.SaveChanges(); return(RedirectToAction("userhome", "user", currentUser)); } return(View()); }