コード例 #1
0
        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();
        }
コード例 #2
0
        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);
        }
コード例 #3
0
ファイル: PaymentProjection.cs プロジェクト: njaka/Payment
        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;
        }
コード例 #4
0
        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>();
        }
コード例 #5
0
ファイル: Payment.cs プロジェクト: njaka/Payment
        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
                    )
                );
        }
コード例 #6
0
 private static DoPayment OrderPaymentCreatedHandler(OrderPaymentCreated orderPaymentReceived, InstanceData <OrderProcessManagerData> state)
 {
     return(new DoPayment());
 }