Exemple #1
0
        public async Task When_a_command_is_undelivered_it_can_be_retrieved_from_the_bus_before_it_is_due()
        {
            using (var clock = VirtualClock.Start())
            {
                var bus = new InMemoryCommandBus <string>(clock);

                await bus.Schedule("undelivered",
                                   dueTime : clock.Now().AddDays(2));

                bus.Undelivered().Should().HaveCount(1);

                bus.Undelivered().Single().Command.Should().Be("undelivered");
            }
        }
Exemple #2
0
        public async Task When_a_command_is_undelivered_it_can_be_retrieved_from_the_bus_after_it_is_due()
        {
            using (var clock = VirtualClock.Start())
            {
                var bus = new InMemoryCommandBus <string>(clock);

                await bus.Schedule("undelivered",
                                   1.Seconds());

                await clock.AdvanceBy(3.Days());

                bus.Undelivered().Should().HaveCount(1);

                bus.Undelivered().Single().Command.Should().Be("undelivered");
            }
        }
Exemple #3
0
        public async Task A_subscribed_receiver_can_select_a_handler_based_on_message_type()
        {
            var bus = new InMemoryCommandBus <ICommand <CommandTarget> >(Clock);

            var received = new List <ICommand <CommandTarget> >();

            var handler1 = CommandHandler.Create <CreateCommandTarget>(delivery => received.Add(delivery.Command));
            var handler2 = CommandHandler.Create <UpdateCommandTarget>(delivery => received.Add(delivery.Command));

            bus.Subscribe(handler1);
            bus.Subscribe(handler2);

            await bus.Schedule(new CreateCommandTarget(Guid.NewGuid().ToString()));

            await Clock.AdvanceBy(1.Seconds());

            received.Should()
            .OnlyContain(c => c is CreateCommandTarget)
            .And
            .HaveCount(1);
        }