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"); } }
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"); } }
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); }