public void ShoppingCart_IfNullRedirectToIndex() { using (var homeController = new HomeController(MockData.MoqLogger(), MockData.MoqShopContext(), MockData.MoqEmailSender(), MockData.MoqMyLogger())) { var controllerContext = new ControllerContext() { HttpContext = new DefaultHttpContext() { Session = new MockHttpSession() } }; homeController.ControllerContext = controllerContext; homeController.HttpContext.Session.Set(WebConst.SessionCart, (List <OrderedBook>)null); var action = homeController.ShoppingCart() as RedirectToActionResult; Assert.Equal("Index", action.ActionName); } }
public void ShoppingCart_ShouldReturnValidModel() { using (var homeController = new HomeController(MockData.MoqLogger(), MockData.MoqShopContext(), MockData.MoqEmailSender(), MockData.MoqMyLogger())) { OrderedBook orderedBook1 = new OrderedBook { BookId = 1, Quantity = 3 }; OrderedBook orderedBook2 = new OrderedBook { BookId = 2, Quantity = 4 }; OrderedBook orderedBook3 = new OrderedBook { BookId = 3, Quantity = 2 }; List <OrderedBook> mockOrderedBookList = new List <OrderedBook>(); mockOrderedBookList.Add(orderedBook1); mockOrderedBookList.Add(orderedBook2); mockOrderedBookList.Add(orderedBook3); var controllerContext = new ControllerContext() { HttpContext = new DefaultHttpContext() { Session = new MockHttpSession() } }; homeController.ControllerContext = controllerContext; homeController.HttpContext.Session.Set(WebConst.SessionCart, mockOrderedBookList); var result = homeController.ShoppingCart() as ViewResult; var model = result?.Model as ShoppingCartViewModel; Assert.NotNull(model); Assert.NotNull(model.Basket); Assert.Equal("The House in the Cerulean Sea", model.Basket.FirstOrDefault(x => x.BookId == 3)?.Title); Assert.Equal(2, model.Basket.FirstOrDefault(x => x.BookId == 3)?.Quantity); Assert.Equal(70.1, model.Basket.FirstOrDefault(x => x.BookId == 3)?.Price); } }