public void Writing_and_reading_a_message_from_the_store() { //arrange using (var store = NewDocumentStore()) { var messageStore = new RavenMessageStore(store); //act var message = new Message(new MessageHeader(Guid.NewGuid(), "Test"), new MessageBody("Body")); messageStore.Add(message).Wait(); var retrievedMessage = messageStore.Get(message.Id).Result; //assert Assert.IsTrue(message == retrievedMessage); } }
public void Writing_and_reading_a_message_from_the_store() { //arrange using (var store = new EmbeddableDocumentStore().Initialize()) { var logger = A.Fake <ILog>(); var messageStore = new RavenMessageStore(store, logger); //act var message = new Message(new MessageHeader(Guid.NewGuid(), "Test", MessageType.MT_COMMAND), new MessageBody("Body")); messageStore.Add(message).Wait(); var retrievedMessage = messageStore.Get(message.Id).Result; //assert Assert.IsTrue(message == retrievedMessage); } }
private CommandProcessor CommandProcessorRegistrar(TinyIoCContainer container, ILog logger) { //Database dao container.Register <ITasksDAO, TasksDAO>().AsSingleton(); //create handler var handlerFactory = new TinyIocHandlerFactory(container); var subscriberRegistry = new SubscriberRegistry(); container.Register <IHandleRequests <AddTaskCommand>, AddTaskCommandHandler>().AsMultiInstance(); subscriberRegistry.Register <AddTaskCommand, AddTaskCommandHandler>(); //complete handler container.Register <IHandleRequests <CompleteTaskCommand>, CompleteTaskCommandHandler>().AsMultiInstance(); subscriberRegistry.Register <CompleteTaskCommand, CompleteTaskCommandHandler>(); //create policies var retryPolicy = Policy.Handle <Exception>().WaitAndRetry(new[] { TimeSpan.FromMilliseconds(50), TimeSpan.FromMilliseconds(100), TimeSpan.FromMilliseconds(150) }); var circuitBreakerPolicy = Policy.Handle <Exception>().CircuitBreaker(1, TimeSpan.FromMilliseconds(500)); var policyRegistry = new PolicyRegistry() { { CommandProcessor.RETRYPOLICY, retryPolicy }, { CommandProcessor.CIRCUITBREAKER, circuitBreakerPolicy } }; //create message mappers container.Register <IAmAMessageMapper <TaskReminderCommand>, TaskReminderCommandMessageMapper>().AsMultiInstance(); var messageMapperFactory = new TinyIoCMessageMapperFactory(container); var messageMapperRegistry = new MessageMapperRegistry(messageMapperFactory); messageMapperRegistry.Add(typeof(TaskReminderCommand), typeof(TaskReminderCommandMessageMapper)); var ravenMessageStore = new RavenMessageStore(new EmbeddableDocumentStore().Initialize(), logger); var gateway = new RmqMessageProducer(logger); var commandProcessor = CommandProcessorBuilder.With() .Handlers(new HandlerConfiguration(subscriberRegistry, handlerFactory)) .Policies(policyRegistry) .Logger(logger) .TaskQueues(new MessagingConfiguration(ravenMessageStore, gateway, messageMapperRegistry)) .RequestContextFactory(new InMemoryRequestContextFactory()) .Build(); return(commandProcessor); }