public void ReplayEventsRmqTest() { var endpointResolver = MockRepository.GenerateMock <IEndpointResolver>(); endpointResolver.Expect(r => r.Resolve("local", "local", "commands", typeof(string), RouteType.Commands)).Return(new Endpoint("rmq", "commandsExchange", "commands", true, "json")); endpointResolver.Expect(r => r.Resolve("local", "local", "events", typeof(TestAggregateRootNameChangedEvent), RouteType.Events)).Return(new Endpoint("rmq", "eventsExchange", "events", true, "json")); endpointResolver.Expect(r => r.Resolve("local", "local", "events", typeof(TestAggregateRootCreatedEvent), RouteType.Events)).Return(new Endpoint("rmq", "eventsExchange", "events", true, "json")); var transports = new Dictionary <string, TransportInfo> { { "rmq", new TransportInfo("localhost", "guest", "guest", null, "RabbitMq") } }; var messagingEngine = new MessagingEngine(new TransportResolver(transports), new RabbitMqTransportFactory()); var eventsListener = new EventsListener(); var localBoundedContext = LocalBoundedContext.Named("local") .PublishingEvents(typeof(TestAggregateRootNameChangedEvent), typeof(TestAggregateRootCreatedEvent)).To("events").RoutedTo("events") .ListeningCommands(typeof(string)).On("commands").RoutedFromSameEndpoint() .ListeningInfrastructureCommands().On("commands").RoutedFromSameEndpoint() .WithCommandsHandler <EsCommandHandler>() .WithEventStore(dispatchCommits => Wireup.Init() .LogToOutputWindow() .UsingInMemoryPersistence() .InitializeStorageEngine() .UsingJsonSerialization() .UsingSynchronousDispatchScheduler() .DispatchTo(dispatchCommits)); using (messagingEngine) { using ( var engine = new CqrsEngine(messagingEngine, endpointResolver, localBoundedContext, LocalBoundedContext.Named("projections").WithProjection(eventsListener, "local"))) { var guid = Guid.NewGuid(); engine.SendCommand(guid + ":create", "local"); engine.SendCommand(guid + ":changeName:newName", "local"); Thread.Sleep(2000); //engine.SendCommand(new ReplayEventsCommand { Destination = "events", From = DateTime.MinValue }, "local"); engine.ReplayEvents("local"); Thread.Sleep(2000); Console.WriteLine("Disposing..."); } } Assert.That(eventsListener.Handled.Count, Is.EqualTo(4), "Events were not redelivered"); }