diff --git a/src/ApplicationCore/Entities/BasketAggregate/BasketItem.cs b/src/ApplicationCore/Entities/BasketAggregate/BasketItem.cs index 2449b16..d065e4b 100644 --- a/src/ApplicationCore/Entities/BasketAggregate/BasketItem.cs +++ b/src/ApplicationCore/Entities/BasketAggregate/BasketItem.cs @@ -5,5 +5,6 @@ public decimal UnitPrice { get; set; } public int Quantity { get; set; } public int CatalogItemId { get; set; } + public int BasketId { get; private set; } } } diff --git a/src/ApplicationCore/Services/BasketService.cs b/src/ApplicationCore/Services/BasketService.cs index e719b5c..add38ea 100644 --- a/src/ApplicationCore/Services/BasketService.cs +++ b/src/ApplicationCore/Services/BasketService.cs @@ -11,16 +11,13 @@ namespace Microsoft.eShopWeb.ApplicationCore.Services public class BasketService : IBasketService { private readonly IAsyncRepository _basketRepository; - private readonly IAsyncRepository _basketItemRepository; private readonly IAppLogger _logger; public BasketService(IAsyncRepository basketRepository, - IAppLogger logger, - IAsyncRepository basketItemRepository) + IAppLogger logger) { _basketRepository = basketRepository; _logger = logger; - _basketItemRepository = basketItemRepository; } public async Task AddItemToBasket(int basketId, int catalogItemId, decimal price, int quantity) @@ -35,12 +32,6 @@ namespace Microsoft.eShopWeb.ApplicationCore.Services public async Task DeleteBasketAsync(int basketId) { var basket = await _basketRepository.GetByIdAsync(basketId); - - foreach (var item in basket.Items.ToList()) - { - await _basketItemRepository.DeleteAsync(item); - } - await _basketRepository.DeleteAsync(basket); } diff --git a/tests/UnitTests/ApplicationCore/Services/BasketServiceTests/DeleteBasket.cs b/tests/UnitTests/ApplicationCore/Services/BasketServiceTests/DeleteBasket.cs index 37e78c8..b7a63d7 100644 --- a/tests/UnitTests/ApplicationCore/Services/BasketServiceTests/DeleteBasket.cs +++ b/tests/UnitTests/ApplicationCore/Services/BasketServiceTests/DeleteBasket.cs @@ -10,28 +10,25 @@ namespace Microsoft.eShopWeb.UnitTests.ApplicationCore.Services.BasketServiceTes public class DeleteBasket { private Mock> _mockBasketRepo; - private Mock> _mockBasketItemRepo; public DeleteBasket() { _mockBasketRepo = new Mock>(); - _mockBasketItemRepo = new Mock>(); } [Fact] - public async Task Should_InvokeBasketRepoOnceAndBasketItemRepoTwice_Given_TwoItemsInBasket() + public async Task Should_InvokeBasketRepositoryDeleteAsync_Once() { var basket = new Basket(); basket.AddItem(1, It.IsAny(), It.IsAny()); basket.AddItem(2, It.IsAny(), It.IsAny()); _mockBasketRepo.Setup(x => x.GetByIdAsync(It.IsAny())) .ReturnsAsync(basket); - var basketService = new BasketService(_mockBasketRepo.Object, null, _mockBasketItemRepo.Object); + var basketService = new BasketService(_mockBasketRepo.Object, null); await basketService.DeleteBasketAsync(It.IsAny()); _mockBasketRepo.Verify(x => x.DeleteAsync(It.IsAny()), Times.Once); - _mockBasketItemRepo.Verify(x => x.DeleteAsync(It.IsAny()), Times.Exactly(2)); } } } diff --git a/tests/UnitTests/ApplicationCore/Services/BasketServiceTests/SetQuantities.cs b/tests/UnitTests/ApplicationCore/Services/BasketServiceTests/SetQuantities.cs index 1291880..4c8943a 100644 --- a/tests/UnitTests/ApplicationCore/Services/BasketServiceTests/SetQuantities.cs +++ b/tests/UnitTests/ApplicationCore/Services/BasketServiceTests/SetQuantities.cs @@ -21,7 +21,7 @@ namespace Microsoft.eShopWeb.UnitTests.ApplicationCore.Services.BasketServiceTes [Fact] public async void ThrowsGivenInvalidBasketId() { - var basketService = new BasketService(_mockBasketRepo.Object, null, null); + var basketService = new BasketService(_mockBasketRepo.Object, null); await Assert.ThrowsAsync(async () => await basketService.SetQuantities(_invalidId, new System.Collections.Generic.Dictionary())); @@ -30,7 +30,7 @@ namespace Microsoft.eShopWeb.UnitTests.ApplicationCore.Services.BasketServiceTes [Fact] public async void ThrowsGivenNullQuantities() { - var basketService = new BasketService(null, null, null); + var basketService = new BasketService(null, null); await Assert.ThrowsAsync(async () => await basketService.SetQuantities(123, null)); diff --git a/tests/UnitTests/ApplicationCore/Services/BasketServiceTests/TransferBasket.cs b/tests/UnitTests/ApplicationCore/Services/BasketServiceTests/TransferBasket.cs index 7992593..3b6fd9b 100644 --- a/tests/UnitTests/ApplicationCore/Services/BasketServiceTests/TransferBasket.cs +++ b/tests/UnitTests/ApplicationCore/Services/BasketServiceTests/TransferBasket.cs @@ -9,7 +9,7 @@ namespace Microsoft.eShopWeb.UnitTests.ApplicationCore.Services.BasketServiceTes [Fact] public async void ThrowsGivenNullAnonymousId() { - var basketService = new BasketService(null, null, null); + var basketService = new BasketService(null, null); await Assert.ThrowsAsync(async () => await basketService.TransferBasketAsync(null, "steve")); } @@ -17,7 +17,7 @@ namespace Microsoft.eShopWeb.UnitTests.ApplicationCore.Services.BasketServiceTes [Fact] public async void ThrowsGivenNullUserId() { - var basketService = new BasketService(null, null, null); + var basketService = new BasketService(null, null); await Assert.ThrowsAsync(async () => await basketService.TransferBasketAsync("abcdefg", null)); }