Exemplo n.º 1
0
        public void IndexPageDoesReturnProducts()
        {
            IRepository <Product>         productContext         = new Mocks.MockContext <Product>();
            IRepository <ProductCategory> productCaregoryContext = new Mocks.MockContext <ProductCategory>();

            productContext.Insert(new Product());

            HomeController controller = new HomeController(productContext, productCaregoryContext);

            var result    = controller.Index() as ViewResult;
            var viewModel = (ProductListViewModel)result.ViewData.Model;


            Assert.AreEqual(1, viewModel.product.Count());
        }
        public void CanGetSummaryViewModel()
        {
            IRepository <Basket>   baskets  = new Mocks.MockContext <Basket>();
            IRepository <Product>  products = new Mocks.MockContext <Product>();
            IRepository <Order>    order    = new Mocks.MockContext <Order>();
            IRepository <Customer> customer = new Mocks.MockContext <Customer>();


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

            Basket basket = new Basket();

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

            IBasketSerivce basketSerivce = new BasketService(products, baskets);
            IOrderService  orderService  = new OrderService(order);

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

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

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

            var result        = controller.BasketSummary() as PartialViewResult;
            var basketSummary = (BasketSummaryViewModel)result.ViewData.Model;

            Assert.AreEqual(3, basketSummary.BasketCount);
            Assert.AreEqual(22.00m, basketSummary.BasketTotal);
        }
Exemplo n.º 3
0
        public void IndexPageDoesReturnProducts()
        {
            // Arrange
            IRepository<Product> _productContext = new Mocks.MockContext<Product>();
            IRepository<ProductCategory> _productCategoryContext = new Mocks.MockContext<ProductCategory>();
            _productContext.Insert(new Product());
            HomeController controller = new HomeController(_productContext, _productCategoryContext);
            

            // Act
            var result = controller.Index() as ViewResult;
            var viewModel =(ProductListViewModel) result.ViewData.Model;

            // Assert
            Assert.AreEqual(1,viewModel.Products.Count());
        }
Exemplo n.º 4
0
        public void IndexPageCanReturnProduct()
        {
            // Arrange
            IRepository <Product>         ProductContext         = new Mocks.MockContext <Product>();
            IRepository <ProductCategory> ProductCategoryContext = new Mocks.MockContext <ProductCategory>();
            HomeController controller = new HomeController(ProductContext, ProductCategoryContext);

            ProductContext.Insert(new Product());

            // Act
            ViewResult         result    = controller.Index() as ViewResult;
            HomeIndexViewModel viewModel = result.ViewData.Model as HomeIndexViewModel;

            // Assert
            Assert.AreEqual(1, viewModel.Products.Count());
        }
Exemplo n.º 5
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);
        }
Exemplo n.º 6
0
        public void Index()
        {
            //// Arrange
            IRepository <Product>         productContext         = new Mocks.MockContext <Product>();
            IRepository <ProductCategory> productCategoryContext = new Mocks.MockContext <ProductCategory>();

            productContext.Insert(new Product());
            HomeController controller = new HomeController(productContext, productCategoryContext);

            //// Act
            ViewResult result    = controller.Index() as ViewResult;
            var        viewModel = (ProductListViewModel)result.ViewData.Model;

            //// Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(1, viewModel.Products.Count());
        }
        public void CanGetSummaryViewModel()
        {
            //Arrange
            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>();

            Basket         basket = new Basket();
            IBasketService basketService;
            IOrderService  orderService;
            var            httpContext = new Mocks.MockHttpContext();


            //Act
            _productsContext.Insert(new Product {
                Id = "1", Price = 10.00m
            });
            _productsContext.Insert(new Product {
                Id = "2", Price = 20.00m
            });
            basket.BasketItems.Add(new BasketItem {
                ProductId = "1", Quantity = 2
            });
            basket.BasketItems.Add(new BasketItem {
                ProductId = "2", Quantity = 1
            });
            _BasketContext.Insert(basket);
            basketService = new BasketService(_productsContext, _BasketContext);
            orderService  = new OrderService(_OrderContext);


            var controller = new BasketController(basketService, orderService, _CustomerContext);

            httpContext.Request.Cookies.Add(new HttpCookie("eCommerceBasket")
            {
                Value = basket.Id
            });
            controller.ControllerContext = new ControllerContext(httpContext, new System.Web.Routing.RouteData(), controller);
            var result        = controller.BasketSummary() as PartialViewResult;
            var basketSummary = (BasketSummaryViewModel)result.ViewData.Model;

            //Assert
            Assert.AreEqual(3, basketSummary.BasketCount);
            Assert.AreEqual(40, basketSummary.BasketTotal);
        }
        public void CanAddBasketItem()
        {
            //Arrange
            IRepository <Product> _productsContext = new Mocks.MockContext <Product>();
            IRepository <Basket>  _BasketContext   = new Mocks.MockContext <Basket>();
            IBasketService        basketService    = new BasketService(_productsContext, _BasketContext);
            //Act
            var httpContext = new Mocks.MockHttpContext();

            basketService.AddToBasket(httpContext, "1");
            Basket basket = _BasketContext.Collection().FirstOrDefault();

            //Assert
            Assert.IsNotNull(basket);
            Assert.AreEqual(1, basket.BasketItems.Count);
            Assert.AreEqual("1", basket.BasketItems.ToList().FirstOrDefault().ProductId);
        }
Exemplo n.º 9
0
        public void Index()
        {
            //Create instances of those Mock repositories
            IRepository <Product>         productContext         = new Mocks.MockContext <Product>();
            IRepository <ProductCategory> productCategoryContext = new Mocks.MockContext <ProductCategory>();

            //insert a new product for testing
            productContext.Insert(new Product());
            //Controller creation
            HomeController controller = new HomeController(productContext, productCategoryContext);

            //call index method under controller to get the result

            var result    = controller.Index() as ViewResult;
            var viewModel = (ProductListViewModel)result.ViewData.Model;

            //running test
            //expecting 1 product in the list of products
            Assert.AreEqual(1, viewModel.Products.Count());
        }
Exemplo n.º 10
0
        public void CanGetSummaryViewModel()
        {
            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);

            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
            });
            controller.ControllerContext = new System.Web.Mvc.ControllerContext(httpContext, new System.Web.Routing.RouteData(), controller);

            PartialViewResult      result    = controller.BasketSummary() as PartialViewResult;
            BasketSummaryViewModel viewModel = result.ViewData.Model as BasketSummaryViewModel;

            Assert.IsNotNull(viewModel);
            Assert.AreEqual(4, viewModel.BasketCount);
            Assert.AreEqual(10.00m, viewModel.BasketTotal);
        }
Exemplo n.º 11
0
        public void IndexPageDoesReturnProducts()
        {
            //Need to create Mock version of the repositories
            // Then, below, create the controller
            IRepository <Product>         productContext         = new Mocks.MockContext <Product>();
            IRepository <ProductCategory> productCategoryContext = new Mocks.MockContext <ProductCategory>();

            //This will make the test successful because it insert a product
            productContext.Insert(new Product());

            HomeController controller = new HomeController(productContext, productCategoryContext);



            // Then call the index method on the controller
            var result = controller.Index() as ViewResult;
            // Cast the ProductListViewModel
            var viewModel = (ProductListViewModel)result.ViewData.Model;

            //Now Access the areas of the view model
            //This test will look to see if there is at least one product
            Assert.AreEqual(1, viewModel.Products.Count());
        }
        public void CanAddBasketItem()
        {
            IRepository <Basket>   baskets  = new Mocks.MockContext <Basket>();
            IRepository <Product>  products = new Mocks.MockContext <Product>();
            IRepository <Order>    order    = new Mocks.MockContext <Order>();
            IRepository <Customer> customer = new Mocks.MockContext <Customer>();

            var httpContext = new MockHttpContext();

            IBasketSerivce basketSerivce = new BasketService(products, baskets);
            IOrderService  orderService  = new OrderService(order);

            var controller = new BasketController(basketSerivce, orderService);

            //basketSerivce.AddToBasket(httpContext, "1");
            controller.ControllerContext = new System.Web.Mvc.ControllerContext(httpContext, new System.Web.Routing.RouteData(), controller);
            controller.AddToBasket("1");

            Basket basket = baskets.Collection().FirstOrDefault();

            Assert.IsNotNull(basket);
            Assert.AreEqual(1, basket.BasketItems.Count());
            Assert.AreEqual("1", basket.BasketItems.ToList().FirstOrDefault().ProductId);
        }
        public void CanCheckoutAndCreateOrder()
        {
            IRepository <Product>  productRespository = new Mocks.MockContext <Product>();
            IRepository <Customer> customer           = new Mocks.MockContext <Customer>();

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

            IRepository <Basket> basketRepository = new Mocks.MockContext <Basket>();
            Basket 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
            });

            basketRepository.Insert(basket);

            IBasketSerivce      basketSerivce   = new BasketService(productRespository, basketRepository);
            IRepository <Order> orderRepository = new MockContext <Order>();
            IOrderService       orderService    = new OrderService(orderRepository);

            customer.Insert(new Customer()
            {
                Id      = "1",
                Email   = "*****@*****.**",
                ZipCode = "90201"
            });

            IPrincipal fakeUser = new GenericPrincipal(new GenericIdentity("*****@*****.**", "Forms"), null);

            var controller  = new BasketController(basketSerivce, orderService);
            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);

            Order order = new Order();

            controller.Checkout(order);

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

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

            Assert.AreEqual(2, orderInRep.OrderItems.Count);
        }