public void setStateHandler_with_two_events() { var orderId = Guid.NewGuid(); var orderCreated = new OrderCreated(orderId, 100, 0, 0); var definition = new OrderProcessManager3(); var instance = new Instance <OrderProcessManagerData>(definition); instance.ProcessEvent(orderCreated); instance.Data.Amount.Should().Be(100); var orderPaymentCreated = new OrderPaymentCreated(100, orderId, 0, 0); instance.ProcessEvent(orderPaymentCreated); instance.Data.Amount.Should().Be(100); instance.Data.IsPaid.Should().BeTrue(); }
public void complete_with_false_predicate() { var orderId = Guid.NewGuid(); var orderCreated = new OrderCreated(orderId, 100, 0, 0); var orderPaymentCreated = new OrderPaymentCreated(100, orderId, 0, 0); var definition = new OrderProcessManager5(); var instance = new Instance <OrderProcessManagerData>(definition); instance.ProcessEvent(orderCreated); instance.State.Should().Be(InstanceStates.Started); instance.Data.IsPaid.Should().Be(true); instance.ProcessEvent(orderPaymentCreated); instance.State.Should().Be(InstanceStates.Started); instance.Data.IsPaid.Should().Be(false); instance.Data.Amount.Should().Be(110); }
private void CreatePayment(OrderPaymentCreated OrderPayment) { if (!_events.ContainsKey(OrderPayment.AggregateId)) { _events.Add(OrderPayment.AggregateId, null); } var payment = PaymentModel .CreateNewCardPayment( new Card(new CardNumber(OrderPayment.CardNumber), new ExpiryDate("06/22"), new CVV(OrderPayment.CVV)), Money.FromDecimal(OrderPayment.Amount, OrderPayment.Currency, new CurrencyLookup()), OrderPayment.BeneficiaryAlias ); _events[OrderPayment.AggregateId] = payment; }
public void process_event_after_completion() { var orderId = Guid.NewGuid(); var orderCreated = new OrderCreated(orderId, 100, 0, 0); var orderCompleted = new OrderCompleted(100, orderId, 0, 0); var orderPaymentCreated = new OrderPaymentCreated(100, orderId, 0, 0); var definition = new OrderProcessManager6(); var instance = new Instance <OrderProcessManagerData>(definition); instance.ProcessEvent(orderCreated); instance.ProcessEvent(orderCompleted); instance.State.Should().Be(InstanceStates.Completed); Action act = () => instance.ProcessEvent(orderPaymentCreated); act.Should().Throw <Exception>(); }
private Payment(Card card, Money amount, string beneficiaryAlias) : base() { this.PaymentId = new PaymentId(Guid.NewGuid()); this.Card = card; this.Amount = amount; this.BeneficiaryAlias = beneficiaryAlias; this.Status = PaymentStatus.Pending; this.CreatedOn = DateTime.Now; RegisterEvent( OrderPaymentCreated .CreateNewOrderPayment( this.PaymentId.Value, this.BeneficiaryAlias, this.Amount.Amount, this.Amount.Currency.ToString(), this.Status.ToString(), this.Card.CardNumber.ToString(), this.Card.CVV.ToString(), this.Card.ExpirationDate.Value ) ); }
private static DoPayment OrderPaymentCreatedHandler(OrderPaymentCreated orderPaymentReceived, InstanceData <OrderProcessManagerData> state) { return(new DoPayment()); }