AddToCart() public method

public AddToCart ( int id, CancellationToken requestAborted ) : Task
id int
requestAborted System.Threading.CancellationToken
return Task
        public async Task AddToCart_AddsItemToCart()
        {
            // Arrange
            var albumId     = 3;
            var httpContext = new DefaultHttpContext();

            httpContext.Session = new TestSession();
            httpContext.Session.SetString("Session", "CartId_A");

            // Creates the albums of AlbumId = 1 ~ 10.
            var dbContext = _serviceProvider.GetRequiredService <MusicStoreContext>();
            var albums    = CreateTestAlbums(itemPrice: 10);

            dbContext.AddRange(albums);
            dbContext.SaveChanges();

            var controller = new ShoppingCartController(dbContext);

            controller.ControllerContext.HttpContext = httpContext;

            // Act
            var result = await controller.AddToCart(albumId, CancellationToken.None);

            // Assert
            var cart = ShoppingCart.GetCart(dbContext, httpContext);

            Assert.Equal(1, (await cart.GetCartItems()).Count);
            Assert.Equal(albumId, (await cart.GetCartItems()).Single().AlbumId);

            var redirectResult = Assert.IsType <RedirectToActionResult>(result);

            Assert.Null(redirectResult.ControllerName);
            Assert.Equal("Index", redirectResult.ActionName);
        }
        public async Task AddToCart_AddsItemToCart()
        {
            // Arrange
            var albumId     = 3;
            var httpContext = new DefaultHttpContext();

            httpContext.Session = new TestSession();
            httpContext.Session.SetString("Session", "CartId_A");

            // Creates the albums of AlbumId = 1 ~ 10.
            var dbContext = _fixture.Context;
            var albums    = CreateTestAlbums(
                10,
                new Artist
            {
                ArtistId = 1, Name = "Kung Fu Kenny"
            }, new Genre
            {
                GenreId = 1, Name = "Rap"
            });

            dbContext.AddRange(albums);
            dbContext.SaveChanges();

            var controller = new ShoppingCartController(
                dbContext,
                _fixture.ServiceProvider.GetService <ILogger <ShoppingCartController> >());

            controller.ControllerContext.HttpContext = httpContext;

            // Act
            var result = await controller.AddToCart(albumId, CancellationToken.None);

            // Assert
            var cart = ShoppingCart.GetCart(dbContext, httpContext);

            Assert.Single(await cart.GetCartItems());
            Assert.Equal(albumId, (await cart.GetCartItems()).Single().AlbumId);

            var redirectResult = Assert.IsType <RedirectToActionResult>(result);

            Assert.Null(redirectResult.ControllerName);
            Assert.Equal("Index", redirectResult.ActionName);
        }
        public async Task AddToCart_AddsItemToCart()
        {
            // Arrange
            var albumId = 3;
            var sessionFeature = new SessionFeature()
            {
                Session = CreateTestSession(),
            };

            var httpContext = new DefaultHttpContext();
            httpContext.SetFeature<ISessionFeature>(sessionFeature);
            httpContext.Session.SetString("Session", "CartId_A");

            // Creates the albums of AlbumId = 1 ~ 10.
            var dbContext = _serviceProvider.GetRequiredService<MusicStoreContext>();
            var albums = CreateTestAlbums(itemPrice: 10);
            dbContext.AddRange(albums);
            dbContext.SaveChanges();

            var controller = new ShoppingCartController()
            {
                DbContext = dbContext
            };
            controller.ActionContext.HttpContext = httpContext;

            // Act
            var result = await controller.AddToCart(albumId, CancellationToken.None);

            // Assert
            var cart = ShoppingCart.GetCart(dbContext, httpContext);
            Assert.Equal(1, (await cart.GetCartItems()).Count);
            Assert.Equal(albumId, (await cart.GetCartItems()).Single().AlbumId);

            var redirectResult = Assert.IsType<RedirectToActionResult>(result);
            Assert.Null(redirectResult.ControllerName);
            Assert.Equal("Index", redirectResult.ActionName);
        }