public IActionResult Checkout(OrderInputModel OrderModel) { var Order = new Order(); var cart = OrderService.GetCart(this.HttpContext); TryUpdateModelAsync(Order); try { // fill out the order with the data from the user Order.Username = User.Identity.Name; Order.OrderDate = DateTime.Now; Order.FullName = OrderModel.FullName; Order.Address = OrderModel.Address; Order.City = OrderModel.City; Order.PostalCode = OrderModel.PostalCode; Order.Country = OrderModel.Country; Order.Email = OrderModel.Email; Order.Total = _orderS.GetTotal(); //Add and save order _checkoutS.Add(Order); //returns the OrderId, we use that generate the complete page int OrderId = cart.CreateOrder(Order); //Checkout Complete! return(RedirectToAction("Complete", new { id = OrderId })); } catch { //invalid, redisplay with errors return(View(Order)); } }
public void Add_New_Checkout_Calls_Context_Save() { var mockSet = new Mock <DbSet <Checkout> >(); var mockCtx = new Mock <LibraryContext>(); mockCtx.Setup(c => c.Checkouts).Returns(mockSet.Object); var sut = new CheckoutService(mockCtx.Object); sut.Add(new Checkout()); mockCtx.Verify(s => s.Add(It.IsAny <Checkout>()), Times.Once()); mockCtx.Verify(c => c.SaveChanges(), Times.Once()); }
public void Add_New_Checkout() { var options = new DbContextOptionsBuilder <LibraryContext>() .UseInMemoryDatabase("Add_writes_to_database") .Options; using (var context = new LibraryContext(options)) { var service = new CheckoutService(context); service.Add(new Checkout { Id = -247 }); Assert.AreEqual(-247, context.Checkouts.Single().Id); } }