public async Task Index_ReturnsNoCartItems_WhenSessionEmpty() { // Arrange var httpContext = new DefaultHttpContext(); httpContext.Session = new TestSession(); var controller = new ShoppingCartController( _serviceProvider.GetRequiredService <MusicStoreContext>(), _serviceProvider.GetService <ILogger <ShoppingCartController> >()); controller.ControllerContext.HttpContext = httpContext; // Act var result = await controller.Index(); // Assert var viewResult = Assert.IsType <ViewResult>(result); Assert.NotNull(viewResult.ViewData); Assert.Null(viewResult.ViewName); var model = Assert.IsType <ShoppingCartViewModel>(viewResult.ViewData.Model); Assert.Equal(0, model.CartItems.Count); Assert.Equal(0, model.CartTotal); }
public async Task Index_ReturnsNoCartItems_WhenNoItemsInCart() { // Arrange var httpContext = new DefaultHttpContext(); httpContext.Session = new TestSession(); httpContext.Session.SetString("Session", "CartId_A"); var controller = new ShoppingCartController( _fixture.Context, _fixture.ServiceProvider.GetService <ILogger <ShoppingCartController> >()); controller.ControllerContext.HttpContext = httpContext; // Act var result = await controller.Index(); // Assert var viewResult = Assert.IsType <ViewResult>(result); Assert.NotNull(viewResult.ViewData); Assert.Null(viewResult.ViewName); var model = Assert.IsType <ShoppingCartViewModel>(viewResult.ViewData.Model); Assert.Empty(model.CartItems); Assert.Equal(0, model.CartTotal); }
public async Task Index_ReturnsNoCartItems_WhenSessionEmpty() { // Arrange var sessionFeature = new SessionFeature() { Session = CreateTestSession(), }; var httpContext = new DefaultHttpContext(); httpContext.SetFeature<ISessionFeature>(sessionFeature); var controller = new ShoppingCartController() { DbContext = _serviceProvider.GetRequiredService<MusicStoreContext>(), }; controller.ActionContext.HttpContext = httpContext; // Act var result = await controller.Index(); // Assert var viewResult = Assert.IsType<ViewResult>(result); Assert.NotNull(viewResult.ViewData); Assert.Null(viewResult.ViewName); var model = Assert.IsType<ShoppingCartViewModel>(viewResult.ViewData.Model); Assert.Equal(0, model.CartItems.Count); Assert.Equal(0, model.CartTotal); }
public async Task Index_ReturnsNoCartItems_WhenNoItemsInCart() { // Arrange var sessionFeature = new SessionFeature() { Session = CreateTestSession(), }; var httpContext = new DefaultHttpContext(); httpContext.SetFeature <ISessionFeature>(sessionFeature); httpContext.Session.SetString("Session", "CartId_A"); var controller = new ShoppingCartController() { DbContext = _serviceProvider.GetRequiredService <MusicStoreContext>(), }; controller.ActionContext.HttpContext = httpContext; // Act var result = await controller.Index(); // Assert var viewResult = Assert.IsType <ViewResult>(result); Assert.NotNull(viewResult.ViewData); Assert.Null(viewResult.ViewName); var model = Assert.IsType <ShoppingCartViewModel>(viewResult.ViewData.Model); Assert.Equal(0, model.CartItems.Count); Assert.Equal(0, model.CartTotal); }
public async Task Index_ReturnsCartItems_WhenItemsInCart() { // Arrange var cartId = "CartId_A"; var sessionFeature = new SessionFeature() { Session = CreateTestSession(), }; var httpContext = new DefaultHttpContext(); httpContext.SetFeature <ISessionFeature>(sessionFeature); httpContext.Session.SetString("Session", cartId); var dbContext = _serviceProvider.GetRequiredService <MusicStoreContext>(); var cartItems = CreateTestCartItems( cartId, itemPrice: 10, numberOfItem: 5); dbContext.AddRange(cartItems.Select(n => n.Album).Distinct()); dbContext.AddRange(cartItems); dbContext.SaveChanges(); var controller = new ShoppingCartController() { DbContext = dbContext, }; controller.ActionContext.HttpContext = httpContext; // Act var result = await controller.Index(); // Assert var viewResult = Assert.IsType <ViewResult>(result); Assert.NotNull(viewResult.ViewData); Assert.Null(viewResult.ViewName); var model = Assert.IsType <ShoppingCartViewModel>(viewResult.ViewData.Model); Assert.Equal(5, model.CartItems.Count); Assert.Equal(5 * 10, model.CartTotal); }
public async Task Index_ReturnsNoCartItems_WhenNoItemsInCart() { // Arrange var httpContext = new DefaultHttpContext(); httpContext.Session = new TestSession(); httpContext.Session.SetString("Session", "CartId_A"); var controller = new ShoppingCartController(_serviceProvider.GetRequiredService<MusicStoreContext>()); controller.ControllerContext.HttpContext = httpContext; // Act var result = await controller.Index(); // Assert var viewResult = Assert.IsType<ViewResult>(result); Assert.NotNull(viewResult.ViewData); Assert.Null(viewResult.ViewName); var model = Assert.IsType<ShoppingCartViewModel>(viewResult.ViewData.Model); Assert.Equal(0, model.CartItems.Count); Assert.Equal(0, model.CartTotal); }
public async Task Index_ReturnsCartItems_WhenItemsInCart() { // Arrange var cartId = "CartId_A"; var sessionFeature = new SessionFeature() { Session = CreateTestSession(), }; var httpContext = new DefaultHttpContext(); httpContext.SetFeature<ISessionFeature>(sessionFeature); httpContext.Session.SetString("Session", cartId); var dbContext = _serviceProvider.GetRequiredService<MusicStoreContext>(); var cartItems = CreateTestCartItems( cartId, itemPrice: 10, numberOfItem: 5); dbContext.AddRange(cartItems.Select(n => n.Album).Distinct()); dbContext.AddRange(cartItems); dbContext.SaveChanges(); var controller = new ShoppingCartController() { DbContext = dbContext, }; controller.ActionContext.HttpContext = httpContext; // Act var result = await controller.Index(); // Assert var viewResult = Assert.IsType<ViewResult>(result); Assert.NotNull(viewResult.ViewData); Assert.Null(viewResult.ViewName); var model = Assert.IsType<ShoppingCartViewModel>(viewResult.ViewData.Model); Assert.Equal(5, model.CartItems.Count); Assert.Equal(5 * 10, model.CartTotal); }