public async Task Verify_emittingCommand_on_reload()
        {
            var orderId = new OrderId(101);
            var evt     = new OrderPlaced(orderId);

            await ApplyEventOnSaga(evt).ConfigureAwait(false);

            var evt2 = new BillPrinted(orderId);

            await ApplyEventOnSaga(evt2).ConfigureAwait(false);

            var sagaId = _listener.GetCorrelationId(evt);

            var changesets = await _persistence.EventStoreReadChangeset(sagaId).ConfigureAwait(false);

            var changeset = changesets.Last();

            Assert.That(changeset.Events.Length, Is.EqualTo(1), "Single event expected");
            var @event = changeset.Events.Single();

            Assert.That(@event, Is.InstanceOf <MessageReaction>(), "We are expecting a messagereaction as payload");
            MessageReaction reaction = (MessageReaction)@event;

            Assert.That(reaction.MessagesOut.Length, Is.EqualTo(0), "Bill printed does not have out events");
        }
Beispiel #2
0
 public ProcessPayment On(OrderPlaced orderPlaced)
 {
     Log("Order Placed");
     return(new ProcessPayment()
     {
         PaymentId = $"Payment_{orderPlaced.OrderId}"
     });
 }
        public async Task Verify_saga_reloaded_status()
        {
            var orderId = new OrderId(100);
            var evt     = new OrderPlaced(orderId);

            await ApplyEventOnSaga(evt).ConfigureAwait(false);

            var sagaId       = _listener.GetCorrelationId(evt);
            var sagaReloaded = await _repo.GetByIdAsync <DeliverPizzaSaga2>(sagaId).ConfigureAwait(false);

            Assert.That(sagaReloaded.AccessState.PizzaActualStatus, Is.EqualTo("Order Placed"));
            Assert.That(sagaReloaded.Id, Is.EqualTo("DeliverPizzaSaga2_Order_100"));
        }
Beispiel #4
0
        public void Verify_saga_reloaded_status()
        {
            var orderId = new OrderId(42);
            var evt     = new OrderPlaced(orderId);

            ApplyEventOnSaga(evt);

            var sagaId       = _listener.GetCorrelationId(evt);
            var sagaReloaded = _repo.GetById <DeliverPizzaSaga2>(sagaId);

            Assert.That(sagaReloaded.PizzaActualStatus, Is.EqualTo("Order Placed"));
            Assert.That(sagaReloaded.Id, Is.EqualTo("DeliverPizzaSaga2_Order_42"));
        }
        public void listener_tests_when_id_has_prefix()
        {
            var listener = new DeliverPizzaSagaListener2();
            var orderId  = new OrderId(5);

            var placed    = new OrderPlaced(orderId);
            var printed   = new BillPrinted(orderId);
            var received  = new PaymentReceived(orderId, Guid.NewGuid());
            var delivered = new PizzaDelivered(orderId);

            Assert.AreEqual("DeliverPizzaSaga2_" + (string)orderId, listener.GetCorrelationId(placed));
            Assert.AreEqual("DeliverPizzaSaga2_" + (string)orderId, listener.GetCorrelationId(printed));
            Assert.AreEqual("DeliverPizzaSaga2_" + (string)orderId, listener.GetCorrelationId(received));
            Assert.AreEqual("DeliverPizzaSaga2_" + (string)orderId, listener.GetCorrelationId(delivered));
        }
        public void listener_tests()
        {
            var listener = new DeliverPizzaSagaListener();
            var orderId  = new OrderId(4);

            var placed    = new OrderPlaced(orderId);
            var printed   = new BillPrinted(orderId);
            var received  = new PaymentReceived(orderId, Guid.NewGuid());
            var delivered = new PizzaDelivered(orderId);
            var prefix    = listener.Prefix;

            Assert.AreEqual(prefix + (string)orderId, listener.GetCorrelationId(placed));
            Assert.AreEqual(prefix + (string)orderId, listener.GetCorrelationId(printed));
            Assert.AreEqual(prefix + (string)orderId, listener.GetCorrelationId(received));
            Assert.AreEqual(prefix + (string)orderId, listener.GetCorrelationId(delivered));
        }
Beispiel #7
0
        public void Verify_saga_reloaded_status_after_two_events()
        {
            var orderId = new OrderId(42);
            var evt     = new OrderPlaced(orderId);

            ApplyEventOnSaga(evt);

            var evt2 = new BillPrinted(orderId);

            ApplyEventOnSaga(evt2);

            var sagaId       = _listener.GetCorrelationId(evt);
            var sagaReloaded = _repo.GetById <DeliverPizzaSaga2>(sagaId);

            Assert.That(sagaReloaded.PizzaActualStatus, Is.EqualTo("Bill printed"));
        }
        public async Task Verify_saga_does_not_mix_events()
        {
            var orderId = new OrderId(102);
            var evt     = new OrderPlaced(orderId);

            await ApplyEventOnSaga(evt).ConfigureAwait(false);

            var orderId2 = new OrderId(103);
            var evt2     = new BillPrinted(orderId2);

            await ApplyEventOnSaga(evt2).ConfigureAwait(false);

            var sagaId       = _listener.GetCorrelationId(evt);
            var sagaReloaded = await _repo.GetByIdAsync <DeliverPizzaSaga2>(sagaId).ConfigureAwait(false);

            Assert.That(sagaReloaded.AccessState.PizzaActualStatus, Is.EqualTo("Order Placed"));
        }
Beispiel #9
0
 public void On(OrderPlaced orderPlaced)
 {
     _logger.Debug("Order Placed");
 }