public void Adding_SameItem_With_Different_Quantity_To_Basket_Should_Change_Quantity() { //----------------------------------------------------------------------------------------------------------- // Arrange //----------------------------------------------------------------------------------------------------------- Guid basketId = Faker.Random.Uuid(); Guid itemId = Faker.Random.Uuid(); const int quantity = 2; const int toQuantity = 4; var basketCreatedEvent = new BasketCreatedEvent(basketId); var itemAddedEvent = new ItemAddedEvent(basketId, itemId, quantity); var quantityChangedEvent = new ItemQuantityChangedEvent(basketId, itemId, quantity, toQuantity); //----------------------------------------------------------------------------------------------------------- // Act //----------------------------------------------------------------------------------------------------------- Basket basket = Basket.Create(basketId); basket.AddItem(itemId, quantity); basket.AddItem(itemId, toQuantity); //----------------------------------------------------------------------------------------------------------- // Assert //----------------------------------------------------------------------------------------------------------- basket.Items.Count.Should().Be(1); basket.ShouldPublishDomainEvents(basketCreatedEvent, itemAddedEvent, quantityChangedEvent); }
public void BasketItem_Quantity_Should_Be_Changed() { //----------------------------------------------------------------------------------------------------------- // Arrange //----------------------------------------------------------------------------------------------------------- Guid basketId = Faker.Random.Uuid(); Guid itemId = Faker.Random.Uuid(); const int fromQuantity = 2; const int toQuantity = 4; var basketCreatedEvent = new BasketCreatedEvent(basketId); var itemAddedEvent = new ItemAddedEvent(basketId, itemId, fromQuantity); var itemQuantityChangedEvent = new ItemQuantityChangedEvent(basketId, itemId, fromQuantity, toQuantity); //----------------------------------------------------------------------------------------------------------- // Act //----------------------------------------------------------------------------------------------------------- Basket basket = Basket.Create(basketId); basket.AddItem(itemId, fromQuantity); basket.ChangeItemQuantity(itemId, toQuantity); //----------------------------------------------------------------------------------------------------------- // Assert //----------------------------------------------------------------------------------------------------------- basket.Items.Count.Should().Be(1); basket.ShouldPublishDomainEvents(basketCreatedEvent, itemAddedEvent, itemQuantityChangedEvent); }
private void When(ItemQuantityChangedEvent @event) { Items.First(x => x.Id == @event.ItemId).Route(@event); }
private void When(ItemQuantityChangedEvent @event) { Quantity = @event.ToQuantity; }
public Task Handle(ItemQuantityChangedEvent notification, CancellationToken cancellationToken) { // Handle Projections or inform the other Bounded Context... return(Task.CompletedTask); }