Exemple #1
0
        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);
            }
        }