Beispiel #1
0
        public async Task TestRepo()
        {
            var @event     = new OrderCreated(Guid.NewGuid(), 100, 0, 0);
            var definition = new OrderProcessManager3();

            var instance         = new Instance <OrderProcessManagerData>(definition);
            var identitySelector = ((IDefinition <OrderProcessManagerData>)definition).GetCorrelationFilter <OrderCreated>();

            if (identitySelector != null)
            {
                instance = await _fixture.Repository.Get(definition, identitySelector(@event), CancellationToken.None);
            }

            instance.ProcessEvent(@event);
            await _fixture.Repository.Save(instance, CancellationToken.None);
        }
Beispiel #2
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();
        }