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); }
public void CanGetSummaryViewModel() { // Arrange IRepository <Product> products = new Mocks.MockContext <Product>(); IRepository <Basket> baskets = new Mocks.MockContext <Basket>(); IRepository <Order> orders = new Mocks.MockContext <Order>(); IRepository <Customer> customers = new Mocks.MockContext <Customer>(); products.Insert(new Product() { Id = "123", Price = 10 }); products.Insert(new Product() { Id = "222", Price = 5 }); Basket basket = new Basket(); basket.BasketItems.Add(new BasketItem() { ProductId = "123", Quantity = 2 }); basket.BasketItems.Add(new BasketItem() { ProductId = "222", Quantity = 1 }); baskets.Insert(basket); IBasketService basketService = new BasketService(products, baskets); IOrderService orderService = new OrderService(orders); var httpContext = new MockHttpContext(); httpContext.Request.Cookies.Add(new System.Web.HttpCookie("eCommerceBasket") { Value = basket.Id }); var controller = new BasketController(basketService, orderService, customers); controller.ControllerContext = new 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(25, basketSummary.BasketTotal); }
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); }
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 IndexPageDoesReturnProducts() { IRepository <Product> productContext = new Mocks.MockContext <Product>(); IRepository <ProductCategory> productCategoryContext = new Mocks.MockContext <ProductCategory>(); productContext.Insert(new Product()); HomeController controller = new HomeController(productContext, productCategoryContext); var result = controller.Index() as ViewResult; var viewModel = (ProductListViewModel)result.ViewData.Model; Assert.AreEqual(1, viewModel.Products.Count()); }
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); }
public void IndexPageDoesReturnBooks() { IRepository <Book> bookContext = new Mocks.MockContext <Book>(); IRepository <BookGenre> bookGenreContext = new Mocks.MockContext <BookGenre>(); bookContext.Insert(new Book()); HomeController controller = new HomeController(bookContext, bookGenreContext); var result = controller.Index() as ViewResult; var viewModel = (BookListViewModel)result.ViewData.Model; Assert.AreEqual(1, viewModel.Books.Count()); }
public void IndexPageDoesReturnProducts() { IRepository <Product> productContext = new Mocks.MockContext <Product>(); //instead of a new inmemory or sql IRepository <ProductCategory> productCategoryContext = new Mocks.MockContext <ProductCategory>(); productContext.Insert(new Product()); HomeController controller = new HomeController(productContext, productCategoryContext); var result = controller.Index() as ViewResult; //now we can call the index method on the controller to get the results var viewModel = (ProductListViewModel)result.ViewData.Model; //AS parte of view result it will contain a product list viewmodel Assert.AreEqual(1, viewModel.Products.Count()); }
public void IndexPageReturnCustomers() { IRepository <Customer> customerContext = new Mocks.MockContext <Customer>(); IRepository <CustomerStatus> customerStatusContext = new Mocks.MockContext <CustomerStatus>(); IRepository <Note> noteContext = new Mocks.MockContext <Note>(); customerContext.Insert(new Customer()); CustomerController controller = new CustomerController(customerContext, customerStatusContext, noteContext); var result = controller.Index("", "") as ViewResult; Assert.IsNotNull(result); }
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()); }
public void IndexPageDoesReturnProducts() { IRepository <Product> _productContext = new Mocks.MockContext <Product>(); IRepository <ProductCategory> _productCategotyContext = new Mocks.MockContext <ProductCategory>(); _productContext.Insert(new Product()); // Arrange HomeController controller = new HomeController(_productContext, _productCategotyContext); //// Act ViewResult result = controller.Index() as ViewResult; ProductListViewModel viewModel = (ProductListViewModel)result.ViewData.Model; //// Assert Assert.AreEqual(1, viewModel.Products.Count()); }
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 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()); }
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 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); }