public async Task AddItemToCart_AddNewItem() { var serviceProvider = BuildInMemoryDBProvider(); using (var dbContext = serviceProvider.GetService <DatabaseContext>()) { //Arrange var shoppingCart = new ShoppingCart() { Id = "1", Items = new List <ShoppingCartMobilePhone>() }; var user = new ApplicationUser() { Id = "1", ShoppingCart = shoppingCart }; var mobilePhone = new MobilePhone() { Id = 2 }; var item = new ShoppingCartMobilePhone() { MobilePhoneId = 1, ShoppingCartId = "1", Quantity = 1 }; shoppingCart.Items.Add(item); dbContext.Add(mobilePhone); dbContext.Add(user); await dbContext.SaveChangesAsync(); var mockHttpContextAccessor = new Mock <IHttpContextAccessor>(); mockHttpContextAccessor.Object.HttpContext = new DefaultHttpContext(); var claims = new ClaimsPrincipal(); mockHttpContextAccessor.Setup(x => x.HttpContext.User).Returns(claims); List <ApplicationUser> _users = new List <ApplicationUser>(); var userManager = MockUserManager <ApplicationUser>(_users).Object; var shoppingCartRepository = new ShoppingCartRepository(dbContext, userManager, mockHttpContextAccessor.Object); //Act await shoppingCartRepository.AddItemToCart(shoppingCart, mobilePhone.Id); var sc = await shoppingCartRepository.GetShoppingCart(); //Assert sc.Should().BeOfType <ShoppingCart>(); sc.Should().NotBeNull(); sc.Items.Should().HaveCount(2); sc.Items.ToList()[0].Quantity.Should().Be(1); sc.Items.ToList()[1].Quantity.Should().Be(1); } }