public void CanAddBasketControllerItem() { //Setup IRepository <Basket> baskets = new MockContext <Basket>(); IRepository <Product> products = new MockContext <Product>(); IRepository <Order> order = new MockContext <Order>(); IRepository <Customer> customer = new MockContext <Customer>(); var httpContext = new HttpMockContext(); IBasketService basketService = new BasketService(products, baskets); IOrderService orderService = new OrderService(order); var controller = new BasketController(basketService, orderService, customer); controller.ControllerContext = new System.Web.Mvc.ControllerContext(httpContext, new System.Web.Routing.RouteData(), controller); //Act controller.AddToBasket("1"); Basket basket = baskets.Collection().FirstOrDefault(); //Assert Assert.IsNotNull(basket); Assert.AreEqual(1, basket.BasketItems.Count); Assert.AreEqual("1", basket.BasketItems.ToList().FirstOrDefault().ProductId); }
public void CanCheckOutAndCreateOrder() { //Setup IRepository <Basket> baskets = new MockContext <Basket>(); IRepository <Product> products = new MockContext <Product>(); IRepository <Order> orders = new MockContext <Order>(); IRepository <Customer> customer = new MockContext <Customer>(); // creacion de productos products.Insert(new Product("1", "Cosa1", 5)); products.Insert(new Product("2", "Cosa2", 10)); products.Insert(new Product("3", "Cosa3", 15)); // creacion de un cliente customer.Insert(new Customer("1", "Tony", "Stark", "*****@*****.**", "something", "Los Angeles", "California", "00000")); IPrincipal FakeUser = new GenericPrincipal(new GenericIdentity("*****@*****.**", "Forms"), null); // insercion de productos en la cesta Basket basket = new Basket(); basket.BasketItems.Add(new BasketItem("1", "1", 2)); basket.BasketItems.Add(new BasketItem("1", "2", 1)); baskets.Insert(basket); IBasketService basketService = new BasketService(products, baskets); IOrderService orderService = new OrderService(orders); var controller = new BasketController(basketService, orderService, customer); var httpContext = new HttpMockContext(); httpContext.User = FakeUser; httpContext.Request.Cookies.Add(new System.Web.HttpCookie("eCommerceBasket") { Value = basket.Id }); // creacion de un contexto para crear y leer cookies controller.ControllerContext = new System.Web.Mvc.ControllerContext(httpContext, new System.Web.Routing.RouteData(), controller); // añadir el contexto al controlador //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); }
public void CanGetSummaryViewModel() { //SETUP IRepository <Basket> baskets = new MockContext <Basket>(); IRepository <Product> products = new MockContext <Product>(); IRepository <Order> orders = new MockContext <Order>(); IRepository <Customer> Customers = new MockContext <Customer>(); products.Insert(new Product() { Id = "1", Price = 20.00m }); products.Insert(new Product() { Id = "2", Price = 60.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); IBasketService basketService = new BasketService(products, baskets); IOrderService orderService = new OrderService(orders); var controller = new BasketController(basketService, orderService, Customers); var httpContext = new HttpMockContext(); httpContext.Request.Cookies.Add(new 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(100.00m, basketSummary.BasketTotal); }
public void CanAddBasketServiceItem() { //Setup IRepository <Basket> baskets = new MockContext <Basket>(); IRepository <Product> products = new MockContext <Product>(); var httpContext = new HttpMockContext(); IBasketService basketService = new BasketService(products, baskets); //Act basketService.AddToBasket(httpContext, "1"); Basket basket = baskets.Collection().FirstOrDefault(); //Assert Assert.IsNotNull(basket); Assert.AreEqual(1, basket.BasketItems.Count); Assert.AreEqual("1", basket.BasketItems.ToList().FirstOrDefault().ProductId); }
public void CanGetSummaryViewModel() { //Setup IRepository <Basket> baskets = new MockContext <Basket>(); IRepository <Product> products = new MockContext <Product>(); IRepository <Order> order = new MockContext <Order>(); IRepository <Customer> customer = new MockContext <Customer>(); //Act products.Insert(new Product("1", "Cosa1", 5)); products.Insert(new Product("2", "Cosa2", 10)); products.Insert(new Product("3", "Cosa3", 15)); Basket basket = new Basket(); basket.BasketItems.Add(new BasketItem("1", "1", 2)); basket.BasketItems.Add(new BasketItem("1", "2", 1)); baskets.Insert(basket); IBasketService basketService = new BasketService(products, baskets); IOrderService orderService = new OrderService(order); var controller = new BasketController(basketService, orderService, customer); var httpContext = new HttpMockContext(); 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 Assert.AreEqual(3, basketSummary.BasketCount); Assert.AreEqual(20, basketSummary.BasketTotal); }
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 = "2", 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); IRepository <Customer> Customers = new MockContext <Customer>(); Customers.Insert(new Customer() { Id = "1", Email = "*****@*****.**", ZipCode = "5555" }); IPrincipal FakeUser = new GenericPrincipal(new GenericIdentity("*****@*****.**", "Forms"), null); var controller = new BasketController(basketService, orderService, Customers); var httpContext = new HttpMockContext { 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 orderInRep = orders.Find(order.Id); Assert.AreEqual(2, orderInRep.OrderItems.Count); }