public void When_AddOrderLineNotPending_ThowsInvalidOrderStateException() { Given(InitialEvents.ToArray(), new OrderCancelled(id)); var command = new AddOrderLine(id, OrderLines[0]); command.Metadata.CausationId = command.Metadata.CommandId; command.Metadata.CorrelationId = causationAndCorrelationId; WhenThrows <AddOrderLine, InvalidOrderStateException>(command); }
public void When_AddItemNotPending_ThrowsInvalidStateException(string checkedOutOrCancelled) { IEvent evt = new BasketCheckedOut(id, new List <OrderLine>(), new Address()); if (checkedOutOrCancelled == "cancelled") { evt = new BasketCancelled(id); } InitialEvents.Add(evt); Given(InitialEvents.ToArray()); WhenThrows <AddItemToBasket, InvalidStateException>(new AddItemToBasket(id, productId, "Test Product", 2, 10)); }
public void When_RemoveItemNotPending_ThrowsInvalidStateException(string checkedOutOrCancelled) { IEvent evt = new BasketCheckedOut(id, OrderLines, new Address()); if (checkedOutOrCancelled == "cancelled") { evt = new BasketCancelled(id); } InitialEvents.Add(evt); Given(InitialEvents.ToArray()); WhenThrows <RemoveItemFromBasket, InvalidStateException>(new RemoveItemFromBasket(id, productId, 10)); }
public void When_AddOrderLine_OrderLineAdded() { Given(InitialEvents.ToArray()); var command = new AddOrderLine(id, OrderLines[0]); command.Metadata.CausationId = command.Metadata.CommandId; command.Metadata.CorrelationId = causationAndCorrelationId; When(command); var expectedEvent = new OrderLineAdded(id, OrderLines[0]); expectedEvent.Metadata.CausationId = command.Metadata.CommandId; expectedEvent.Metadata.CorrelationId = causationAndCorrelationId; expectedEvent.Metadata.ProcessId = command.Metadata.ProcessId; Then(expectedEvent); }
private void When_PrepareForShipping_OrderReadyForShipping() { Given(InitialEvents.ToArray()); var command = new PrepareOrderForShipping(id); command.Metadata.CausationId = command.Metadata.CommandId; command.Metadata.CorrelationId = causationAndCorrelationId; When(command); var expectedEvent = new OrderReadyForShipping(id); expectedEvent.Metadata.CausationId = command.Metadata.CommandId; expectedEvent.Metadata.CorrelationId = causationAndCorrelationId; expectedEvent.Metadata.ProcessId = command.Metadata.ProcessId; Then(expectedEvent); }
public void When_AddItem_BasketAddItemAdded() { Given(InitialEvents.ToArray()); var command = new AddItemToBasket(id, productId, "Test Item", 2, 10); command.Metadata.CausationId = command.Metadata.CommandId; command.Metadata.CorrelationId = causationAndCorrelationId; When(command); var expectedEvent = new BasketItemAdded(id, productId, "Test Item", 2, 10); expectedEvent.Metadata.CausationId = command.Metadata.CommandId; expectedEvent.Metadata.CorrelationId = causationAndCorrelationId; expectedEvent.Metadata.ProcessId = command.Metadata.ProcessId; Then(expectedEvent); }
public void When_RemoveItemBelowZero_ItemRemoved() { Given(InitialEvents.ToArray()); var command = new RemoveItemFromBasket(id, productId, 15); command.Metadata.CausationId = command.Metadata.CommandId; command.Metadata.CorrelationId = causationAndCorrelationId; When(command); var expectedEvent = new BasketItemRemoved(id, productId, 10); expectedEvent.Metadata.CausationId = command.Metadata.CommandId; expectedEvent.Metadata.CorrelationId = causationAndCorrelationId; expectedEvent.Metadata.ProcessId = command.Metadata.ProcessId; Then(expectedEvent); }
public void When_CheckOut_CheckedOut() { Given(InitialEvents.ToArray()); var command = new CheckOutBasket(id, shippingAddress); command.Metadata.CausationId = command.Metadata.CommandId; command.Metadata.CorrelationId = causationAndCorrelationId; command.Metadata.ProcessId = causationAndCorrelationId; When(command); var expectedEvent = new BasketCheckedOut(id, OrderLines, shippingAddress); expectedEvent.Metadata.CausationId = command.Metadata.CommandId; expectedEvent.Metadata.CorrelationId = causationAndCorrelationId; expectedEvent.Metadata.ProcessId = command.Metadata.ProcessId; Then(expectedEvent); }
private void RunCatchup() { // TODO: (RunCatchup) provide trace output here and throughout var projectors = handlers.OrEmpty() .Where(h => h.GetType().IsProjectorType()) .ToArray(); if (!projectors.Any()) { return; } if (configuration.IsUsingSqlEventStore()) { var catchup = new ReadModelCatchup(projectors) { CreateEventStoreDbContext = CreateEventStoreDbContext, CreateReadModelDbContext = CreateReadModelDbContext, StartAtEventId = startCatchupAtEventId }; using (catchup) using (catchup.EventBus.Errors.Subscribe(scenario.AddEventHandlingError)) using (catchup.Progress.Subscribe(s => Console.WriteLine(s))) { catchup.Run(); } } else { EventBus.PublishAsync(InitialEvents.ToArray()).Wait(); } if (scenario.EventHandlingErrors.Any()) { throw new ScenarioSetupException( "The following event handling errors occurred during projection catchup: " + string.Join("\n", scenario.EventHandlingErrors.Select(e => e.Exception.ToString()))); } }
public void When_CheckOutCancelled_ThrowsInvalidStateException() { InitialEvents.Add(new BasketCancelled(id)); Given(InitialEvents.ToArray()); WhenThrows <CheckOutBasket, InvalidStateException>(new CheckOutBasket(id, shippingAddress)); }