public void Process_WhenAddingTwoDifferentProducts_ShouldAddBothToCart() { // Arrange var product1Id = Guid.NewGuid(); var product1 = new ItemAddedToCart { GrossItemPrice = 129, NetItemPrice = 99, Product = product1Id, Quantity = 1 }; var product2Id = Guid.NewGuid(); var product2 = new ItemAddedToCart { GrossItemPrice = 449, NetItemPrice = 399, Product = product2Id, Quantity = 1 }; // Act _cartEventProcessors.Process(product1); _cartEventProcessors.Process(product2); // Assert Assert.Equal(2, _testCart.Lines.Count()); A.CallTo(() => _fakeCarts.Save(A <Cart> ._)).MustHaveHappened(Repeated.Exactly.Twice); }
public void Process_WhenAddingSameProductThreeTimes_ShouldOnlyIncreaseQuantityInCart() { // Arrange var productId = Guid.NewGuid(); var product = new ItemAddedToCart { GrossItemPrice = 129, NetItemPrice = 99, Product = productId, Quantity = 1 }; // Act _cartEventProcessors.Process(product); _cartEventProcessors.Process(product); _cartEventProcessors.Process(product); // Assert Assert.Single(_testCart.Lines); Assert.Equal(3, _testCart.Lines.Single().Quantity); Assert.Equal(129, _testCart.Lines.Single().Price.Gross); Assert.Equal(99, _testCart.Lines.Single().Price.Net); Assert.Equal(productId, _testCart.Lines.Single().Product); A.CallTo(() => _fakeCarts.Save(A <Cart> ._)).MustHaveHappened(Repeated.Exactly.Times(3)); }
private void Apply(ItemAddedToCart @event) { Cart[@event.CartEntryId] = new CartItemModel { ItemId = @event.ItemId, Quantity = @event.Quantity, Price = @event.Price }; }
void Added(ItemAddedToCart message) { var cart = _cartRepository.Get(); cart.Items += message.Quantity; cart.Total += message.Price * (decimal)message.Quantity; _cartRepository.Update(cart); CartChanged(cart); }
public void Process(ItemAddedToCart @event) { var cart = _carts.GetById(@event.Cart); cart.Add(@event.Product, @event.Quantity, new Price { Net = @event.NetItemPrice, Gross = @event.GrossItemPrice }); _carts.Save(cart); }
public void UpdateState(ItemAddedToCart @event) { if (items.ContainsKey(@event.ProductId)) { items[@event.ProductId] = new CartItem(@event.ProductId, items[@event.ProductId].Quantity + 1); } else { items.Add(@event.ProductId, new CartItem(@event.ProductId, 1)); } }
public void Apply(ItemAddedToCart e) { var item = itemsInCart.FirstOrDefault(i => i.ItemNumber == e.Item.ItemNumber); if (item != null) { item.Count++; } else { itemsInCart.Add(new ItemInCart { Artist = e.Item.Artist, Count = 1, ItemNumber = e.Item.ItemNumber, ReleasedYear = e.Item.ReleasedYear, Title = e.Item.Title, }); } }
public void Process(ItemAddedToCart @event) { _logger.Information($"Item with article '{@event.Article} added to cart'"); }
public void AddItem(string productId) { var @event = new ItemAddedToCart(Guid.NewGuid(), StreamId, productId, DateTime.UtcNow); Apply(@event); }
public void Apply(ItemAddedToCart evt) { Items.Add(new Item(evt.Id, evt.Name)); }
private static bool OnItemAdded(ItemAddedToCart arg) { Console.WriteLine(arg.MenuItem.Name + " added to cart."); return(true); }