public void CanCheckOutAndCreateOrder()
        {
            IRepository <Product>  _productsContext = new Mocks.MockContext <Product>();
            IRepository <Basket>   _BasketContext   = new Mocks.MockContext <Basket>();
            IRepository <Order>    _OrderContext    = new Mocks.MockContext <Order>();
            IRepository <Customer> _CustomerContext = new Mocks.MockContext <Customer>();

            IBasketService basketService;
            IOrderService  orderService;
            Basket         basket;

            _productsContext.Insert(new Product {
                Id = "1", Price = 10.00m
            });
            _productsContext.Insert(new Product {
                Id = "2", Price = 20.00m
            });
            basket = new Basket();
            basket.BasketItems.Add(new BasketItem {
                ProductId = "1", Quantity = 2, BasketId = basket.Id
            });
            basket.BasketItems.Add(new BasketItem {
                ProductId = "2", Quantity = 1, BasketId = basket.Id
            });
            _BasketContext.Insert(basket);

            _CustomerContext.Insert(new Customer {
                Id = "1", Email = "*****@*****.**", ZipCode = "32323"
            });
            IPrincipal FakeUser = new GenericPrincipal(new GenericIdentity("*****@*****.**", "Forms"), null);

            basketService = new BasketService(_productsContext, _BasketContext);
            orderService  = new OrderService(_OrderContext);

            var controller  = new BasketController(basketService, orderService, _CustomerContext);
            var httpContext = new Mocks.MockHttpContext();

            httpContext.User = FakeUser;
            httpContext.Request.Cookies.Add(new HttpCookie("eCommerceBasket")
            {
                Value = basket.Id
            });
            controller.ControllerContext = new ControllerContext(httpContext, new System.Web.Routing.RouteData(), controller);

            //Act

            Order order = new Order();

            controller.CheckOut(order);

            //Assert

            Assert.AreEqual(2, order.OrderItems.Count);
            Assert.AreEqual(0, basket.BasketItems.Count);

            Order orderInRepo = _OrderContext.Find(order.Id);

            Assert.AreEqual(2, orderInRepo.OrderItems.Count);
        }
Exemplo n.º 2
0
        public void CanCheckOutAndCreateOrder()
        {
            IRepository <Customer> customers = new MockContext <Customer>();
            IRepository <Product>  products  = new MockContext <Product>();

            products.Insert(new Product()
            {
                Id = "1", Price = 10.00m
            });
            products.Insert(new Product()
            {
                Id = "2", Price = 5.00m
            });

            IRepository <Basket> baskets = new MockContext <Basket>();
            Basket basket = new Basket();

            basket.BasketItems.Add(new BasketItem()
            {
                ProductId = "1", Quantity = 2, BasketId = basket.Id
            });
            basket.BasketItems.Add(new BasketItem()
            {
                ProductId = "1", Quantity = 1, BasketId = basket.Id
            });
            baskets.Insert(basket);

            IBasketService      basketService = new BasketService(products, baskets);
            IRepository <Order> orders        = new MockContext <Order>();
            IOrderService       orderService  = new OrderService(orders);

            customers.Insert(new Customer {
                Id = "1", Email = "*****@*****.**", ZipCode = "90210"
            });
            IPrincipal FakeUser = new GenericPrincipal(new GenericIdentity("*****@*****.**", "Forms"), null);

            var controller  = new BasketController(basketService, orderService, customers);
            var httpContext = new MockHttpContext();

            httpContext.User = FakeUser;
            httpContext.Request.Cookies.Add(new System.Web.HttpCookie("eCommerceBasket")
            {
                Value = basket.Id
            });
            controller.ControllerContext = new ControllerContext(httpContext, new System.Web.Routing.RouteData(), controller);
            //Act
            Order order = new Order();

            controller.CheckOut(order);
            //Assert
            Assert.AreEqual(2, order.OrderItems.Count);
            Assert.AreEqual(0, basket.BasketItems.Count);
            Order orderInRep = orders.Find(order.Id);

            Assert.AreEqual(2, orderInRep.OrderItems.Count);
        }
Exemplo n.º 3
0
        public void CanCheckOutAndCreateOrder()
        {
            IRepository <Product> products = new MockContext <Product>();

            products.Insert(new Product()
            {
                Id = "1", Price = 10.00m
            });
            products.Insert(new Product()
            {
                Id = "2", Price = 5.00m
            });

            IRepository <Basket> baskets = new MockContext <Basket>();
            Basket basket = new Basket();

            basket.BasketItems.Add(new BasketItem()
            {
                ProductId = "1", Quantity = 2, BasketId = basket.Id
            });
            basket.BasketItems.Add(new BasketItem()
            {
                ProductId = "1", Quantity = 1, BasketId = basket.Id
            });

            baskets.Insert(basket);

            IBasketService basketService = new BasketService(products, baskets);

            IRepository <Order> orders       = new MockContext <Order>();
            IOrderService       orderService = new OrderService(orders);

            var controller  = new BasketController(basketService, orderService);
            var httpContext = new MockHttpContext();

            httpContext.Request.Cookies.Add(new System.Web.HttpCookie("eCommerceBasket")
            {
                Value = basket.Id
            });

            controller.ControllerContext = new ControllerContext(httpContext, new System.Web.Routing.RouteData(), controller);

            //Act
            Order order = new Order();

            controller.CheckOut(order);

            //Assert
            Assert.AreEqual(2, order.OrderItems.Count);
            Assert.AreEqual(0, basket.BasketItems.Count);

            Order orderInRep = orders.Find(order.Id);

            Assert.AreEqual(2, orderInRep.OrderItems.Count);
        }
Exemplo n.º 4
0
        public void CanCheckOutAndCreateOrder()
        {
            IRepository <Product>  ProductContext  = new Mocks.MockContext <Product>();
            IRepository <Basket>   BasketContext   = new Mocks.MockContext <Basket>();
            IRepository <Order>    orderContext    = new MockContext <Order>();
            IRepository <Customer> customerContext = new MockContext <Customer>();
            IBasketService         basketService   = new BasketService(BasketContext, ProductContext);
            HttpContextBase        httpContext     = new MockHttpContext();
            IOrderService          orderService    = new OrderService(orderContext);
            Basket           basket     = new Basket();
            BasketController controller = new BasketController(basketService, orderService, customerContext);

            customerContext.Insert(new Customer {
                Id = "1", Email = "*****@*****.**"
            });
            IPrincipal fakeUser = new GenericPrincipal(new GenericIdentity("*****@*****.**", "Forms"), null);

            ProductContext.Insert(new Product {
                Id = "1", Price = 3.00m
            });
            ProductContext.Insert(new Product {
                Id = "2", Price = 2.00m
            });
            basket.BasketItems.Add(new BasketItem {
                ProductId = "1", Quantity = 2
            });
            basket.BasketItems.Add(new BasketItem {
                ProductId = "2", Quantity = 2
            });
            BasketContext.Insert(basket);
            httpContext.Request.Cookies.Add(new System.Web.HttpCookie("eCommerceBasket2")
            {
                Value = basket.Id
            });
            httpContext.User = fakeUser;

            controller.ControllerContext = new System.Web.Mvc.ControllerContext(httpContext, new System.Web.Routing.RouteData(), controller);

            Order order = new Order();

            controller.CheckOut(order);
            Order OrderInRepo = orderContext.Find(order.Id);

            Assert.AreEqual(2, order.OrderItems.Count);
            Assert.AreEqual(0, basket.BasketItems.Count);
            Assert.AreEqual(2, OrderInRepo.OrderItems.Count);
        }