public void Clearing_Items_From_Basket_Should_Clear_All_Items_In_The_Basket() { var customerId = Faker.Random.Int(min: 1); var itemId = Faker.Random.Int(min: 1); const int fromQuantity = 2; var itemStockChecker = new Mock <IItemStockChecker>(); itemStockChecker.Setup(mr => mr.IsAvaliable(itemId, fromQuantity)).Returns(Task.FromResult(true)); var basketCreatedEvent = new BasketCreatedEvent(customerId); var basketItemAddedEvent = new BasketItemAddedEvent(customerId, itemId, fromQuantity); var basketCleanedEvent = new BasketCleanedEvent(customerId); var basket = Basket.Create(customerId); basket.AddItem(itemId, fromQuantity, itemStockChecker.Object); basket.Clear(); basket.Items.Count.Should().Be(0); basket.ShouldPublishDomainEvents(basketCreatedEvent, basketItemAddedEvent, basketCleanedEvent); }
public void Clearing_Items_From_Basket_Should_Be_Idempotent() { //----------------------------------------------------------------------------------------------------------- // Arrange //----------------------------------------------------------------------------------------------------------- Guid basketId = Faker.Random.Uuid(); var basketCreatedEvent = new BasketCreatedEvent(basketId); //----------------------------------------------------------------------------------------------------------- // Act //----------------------------------------------------------------------------------------------------------- Basket basket = Basket.Create(basketId); basket.Clear(); basket.Clear(); //----------------------------------------------------------------------------------------------------------- // Assert //----------------------------------------------------------------------------------------------------------- basket.Items.Count.Should().Be(0); basket.ShouldPublishDomainEvents(basketCreatedEvent); }
public void BasketItem_Quantity_Should_Be_Changed_And_Product_Should_Be_Removed_When_Quantity_Is_Zero() { var customerId = Faker.Random.Int(min: 1); var itemId = Faker.Random.Int(min: 1); const int fromQuantity = 2; const int toQuantity = 0; var itemStockChecker = new Mock <IItemStockChecker>(); itemStockChecker.Setup(mr => mr.IsAvaliable(itemId, fromQuantity)).Returns(Task.FromResult(true)); itemStockChecker.Setup(mr => mr.IsAvaliable(itemId, toQuantity)).Returns(Task.FromResult(true)); var basketCreatedEvent = new BasketCreatedEvent(customerId); var basketItemAddedEvent = new BasketItemAddedEvent(customerId, itemId, fromQuantity); var basketItemRemovedEvent = new BasketItemRemovedEvent(customerId, itemId); var basket = Basket.Create(customerId); basket.AddItem(itemId, fromQuantity, itemStockChecker.Object); basket.ChangeItemQuantity(itemId, toQuantity, itemStockChecker.Object); basket.Items.Count.Should().Be(0); basket.ShouldPublishDomainEvents(basketCreatedEvent, basketItemAddedEvent, basketItemRemovedEvent); }
private void When(BasketCreatedEvent @event) { Id = @event.BasketId; }