public void TestRemoveShouldReduceAmountIfMoreThanOneExists() { //Arrange var uniqueId = Guid.NewGuid().ToString(); var expectedShoppingCartItem = new ShoppingCartItem { Id = 999, ShopItemId = 999, ShoppingCartId = uniqueId, Amount = 5 }; using (var context = new DatabaseContext(_options)) { var shopItem = context.ShopItems.Find(999); context.ShoppingCartItems.Add(new ShoppingCartItem { Id = 999, ShopItem = shopItem, ShoppingCartId = uniqueId, Amount = 6 }); context.SaveChanges(); } using (var context = new DatabaseContext(_options)) { var sut = new ShoppingCartItemRepository(context); //Act sut.Remove(new ShoppingCartItem { ShopItemId = 999, ShoppingCartId = uniqueId }); var result = sut.GetAll(); //Assert Assert.Contains(expectedShoppingCartItem, result); } }
public void TestGetAllShouldReturnAllShoppingCartItemsIncludingShopItemProperty() { //Arrange var uniqueId = Guid.NewGuid().ToString(); var expectedShoppingCartItem = new ShoppingCartItem { Id = 999, Amount = 1, ShopItemId = 999, ShopItem = new ShopItem { CategoryId = 999, Id = 999, Name = "TestShopItem" }, ShoppingCartId = uniqueId }; using (var context = new DatabaseContext(_options)) { var shopItem = context.ShopItems.Find(999); context.ShoppingCartItems.Add(new ShoppingCartItem { Id = 999, Amount = 1, ShopItem = shopItem, ShoppingCartId = uniqueId }); context.SaveChanges(); } using (var context = new DatabaseContext(_options)) { var sut = new ShoppingCartItemRepository(context); //Act var result = sut.GetAll(); //Assert Assert.Contains(expectedShoppingCartItem, result); } }
public void TestAddShouldIncreaseTheAmountIfEntityExists() { //Arrange const int expectedShoppingCartItemsCount = 1; const int expectedShoppingCartItemsAmount = 2; var uniqueId = Guid.NewGuid().ToString(); var shoppingCartItem = new ShoppingCartItem { Id = 999, ShopItemId = 999, ShopItem = new ShopItem { Id = 999, Name = "TestItem", CategoryId = 999 }, ShoppingCartId = uniqueId, Amount = 1 }; using var context = new DatabaseContext(_options); var sut = new ShoppingCartItemRepository(context); //Act sut.Add(shoppingCartItem); sut.Add(shoppingCartItem); var result = sut.GetAll().Where(s => s.ShoppingCartId == uniqueId); //Assert Assert.Equal(expectedShoppingCartItemsCount, result.Count()); Assert.Equal(expectedShoppingCartItemsAmount, result.First().Amount); }
public void TestRemoveShouldRemoveEntityIfOnlyOneExists() { //Arrange var uniqueId = Guid.NewGuid().ToString(); using (var context = new DatabaseContext(_options)) { var shopItem = context.ShopItems.Find(999); context.ShoppingCartItems.Add(new ShoppingCartItem { Id = 999, ShopItem = shopItem, ShoppingCartId = uniqueId, Amount = 1 }); context.SaveChanges(); } using (var context = new DatabaseContext(_options)) { var sut = new ShoppingCartItemRepository(context); //Act sut.Remove(new ShoppingCartItem { ShopItemId = 999, ShoppingCartId = uniqueId }); var result = sut.GetAll(); //Assert Assert.Empty(result); } }
public void TestClearShouldEmptyCart() { //Arrange var uniqueId = Guid.NewGuid().ToString(); var testClearId = Guid.NewGuid().ToString(); const int expectedShoppingCartItems = 1; var fixture = new OmitRecursionFixture(); using (var context = new DatabaseContext(_options)) { var shopItems = fixture .Build <ShopItem>() .Without(p => p.Id) .With(p => p.CategoryId, 999) .CreateMany().ToList(); context.ShopItems.AddRange(shopItems); foreach (var item in shopItems) { context.Add(new ShoppingCartItem { Id = item.Id, ShopItem = item, ShoppingCartId = testClearId, Amount = 1 }); } var shopItem = context.ShopItems.Find(999); context.ShoppingCartItems.Add(new ShoppingCartItem { Id = 999, ShopItem = shopItem, ShoppingCartId = uniqueId, Amount = 1 }); context.SaveChanges(); } using (var context = new DatabaseContext(_options)) { var sut = new ShoppingCartItemRepository(context); //Act sut.Clear(testClearId); context.SaveChanges(); } using (var context = new DatabaseContext(_options)) { var sut = new ShoppingCartItemRepository(context); var result = sut.GetAll(); //Assert Assert.Equal(expectedShoppingCartItems, result.Count()); Assert.NotNull(result.FirstOrDefault(i => i.ShoppingCartId == uniqueId)); Assert.Null(result.FirstOrDefault(i => i.ShoppingCartId == testClearId)); } }