public void Setup() { var logger = new Mock <ILog>().Object; var registry = new SubscriberRegistry(); registry.Register <TestCommand, TestFailingTimeoutHandler>(); var container = new TinyIoCContainer(); var handlerFactory = new TinyIoCHandlerFactory(container); container.Register(logger); container.Register <IHandleRequests <TestCommand>, TestFailingTimeoutHandler>().AsSingleton(); container.Register <IHandleRequests <TestCommand>, TimeoutPolicyHandler <TestCommand> >().AsSingleton(); TestFailingTimeoutHandler.WasCancelled = false; TestFailingTimeoutHandler.TaskCompleted = true; commandProcessor = new CommandProcessor(registry, handlerFactory, new InMemoryRequestContextFactory(), new PolicyRegistry(), logger); try { commandProcessor.Send(testCommand); } catch (AggregateException ex) { aggregateException = ex; } }
public void Setup() { var logger = new Mock <ILog>().Object; var registry = new SubscriberRegistry(); registry.Register <TestCommand, TestUnusedCommandHandler>(); var container = new TinyIoCContainer(); var handlerFactory = new TinyIoCHandlerFactory(container); container.Register <IHandleRequests <TestCommand>, TestUnusedCommandHandler>(); container.Register <IHandleRequests <TestCommand>, TestAbortingHandler <TestCommand> >(); container.Register(logger); commandProcessor = new CommandProcessor(registry, handlerFactory, new InMemoryRequestContextFactory(), new PolicyRegistry(), logger); }
public void Setup() { var logger = new Mock <ILog>().Object; var registry = new SubscriberRegistry(); registry.Register <TestEvent, TestEventHandler>(); registry.Register <TestEvent, TestOtherEventHandler>(); var container = new TinyIoCContainer(); var handlerFactory = new TinyIoCHandlerFactory(container); container.Register <IHandleRequests <TestEvent>, TestEventHandler>("TestEventHandler"); container.Register <IHandleRequests <TestEvent>, TestOtherEventHandler>("TestOtherHandler"); container.Register(logger); commandProcessor = new CommandProcessor(registry, handlerFactory, new InMemoryRequestContextFactory(), new PolicyRegistry(), logger); }
public void Setup() { var logger = new Mock <ILog>().Object; var registry = new SubscriberRegistry(); registry.Register <TestCommand, TestImplicitHandler>(); var container = new TinyIoCContainer(); var handlerFactory = new TinyIoCHandlerFactory(container); container.Register <IHandleRequests <TestCommand>, TestImplicitHandler>(); container.Register <IHandleRequests <TestCommand>, TestLoggingHandler <TestCommand> >(); container.Register(logger); pipelineBuilder = new PipelineBuilder <TestCommand>(registry, handlerFactory, logger); pipeline = pipelineBuilder.Build(new RequestContext()).First(); }
public void Setup() { var logger = new Mock <ILog>().Object; var registry = new SubscriberRegistry(); registry.Register <TestCommand, TestPreAndPostDecoratedHandler>(); var container = new TinyIoCContainer(); var handlerFactory = new TinyIoCHandlerFactory(container); container.Register <IHandleRequests <TestCommand>, TestPreAndPostDecoratedHandler>(); container.Register <IHandleRequests <TestCommand>, TestValidationHandler <TestCommand> >(); container.Register <IHandleRequests <TestCommand>, TestLoggingHandler <TestCommand> >(); container.Register(logger); commandProcessor = new CommandProcessor(registry, handlerFactory, new InMemoryRequestContextFactory(), new PolicyRegistry(), logger); commandProcessor.Send(testCommand); }
protected override void ConfigureApplicationContainer(TinyIoCContainer container) { base.ConfigureApplicationContainer(container); var logger = LogProvider.GetLogger(this.GetType().Namespace); container.Register(logger); var subscriberRegistry = new SubscriberRegistry(); subscriberRegistry.Register <AddTaskCommand, AddTaskCommandHandler>(); subscriberRegistry.Register <CompleteTaskCommand, CompleteTaskCommandHandler>(); container.Register <IHandleRequests <AddTaskCommand>, AddTaskCommandHandler>().AsMultiInstance(); container.Register <IHandleRequests <CompleteTaskCommand>, CompleteTaskCommandHandler>().AsMultiInstance(); var handlerFactory = new TinyIoCHandlerFactory(container); 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 } }; var sqlMessageStore = new MsSqlMessageStore(new MsSqlMessageStoreConfiguration("Data Source=|DataDirectory|Tasks.sdf;Persist Security Info=False;", "messages", MsSqlMessageStoreConfiguration.DatabaseType.SqlCe), logger); var gateway = new AzureServiceBusMessageProducer(logger); container.Register <IAmAMessageMapper <TaskReminderCommand>, TaskReminderCommandMessageMapper>().AsMultiInstance(); var messageMapperFactory = new TinyIoCMessageMapperFactory(container); var messageMapperRegistry = new MessageMapperRegistry(messageMapperFactory); messageMapperRegistry.Add(typeof(TaskReminderCommand), typeof(TaskReminderCommandMessageMapper)); messageMapperRegistry.Add(typeof(TaskCompletedEvent), typeof(TaskCompletedEventMapper)); var commandProcessor = CommandProcessorBuilder .With() .Handlers(new HandlerConfiguration(subscriberRegistry, handlerFactory)) .Policies(policyRegistry) .TaskQueues(new MessagingConfiguration(sqlMessageStore, gateway, messageMapperRegistry)) .RequestContextFactory(new InMemoryRequestContextFactory()) .Build(); container.Register <IAmACommandProcessor>(commandProcessor); }
public void Setup() { var logger = new Mock <ILog>().Object; var registry = new SubscriberRegistry(); registry.Register <TestCommand, TestFailingDivideByZeroHandler>(); var container = new TinyIoCContainer(); var handlerFactory = new TinyIoCHandlerFactory(container); container.Register <IHandleRequests <TestCommand>, TestFailingDivideByZeroHandler>().AsSingleton(); container.Register <IHandleRequests <TestCommand>, ExceptionPolicyHandler <TestCommand> >().AsSingleton(); container.Register(logger); var policyRegistry = new PolicyRegistry(); var policy = Policy .Handle <DivideByZeroException>() .WaitAndRetry(new[] { 100.Milliseconds(), 200.Milliseconds(), 300.Milliseconds() }, (exception, timeSpan) => { retryCount++; }); policyRegistry.Add("TestDivideByZeroPolicy", policy); TestFailingDivideByZeroHandler.ReceivedCommand = false; commandProcessor = new CommandProcessor(registry, handlerFactory, new InMemoryRequestContextFactory(), policyRegistry, logger); try { commandProcessor.Send(testCommand); } catch (DivideByZeroException) { } }
public void Setup() { var logger = new Mock <ILog>().Object; var registry = new SubscriberRegistry(); registry.Register <TestCommand, TestNotFailingTimeoutHandler>(); var container = new TinyIoCContainer(); var handlerFactory = new TinyIoCHandlerFactory(container); container.Register <IHandleRequests <TestCommand>, TestNotFailingTimeoutHandler>().AsSingleton(); container.Register <IHandleRequests <TestCommand>, TimeoutPolicyHandler <TestCommand> >().AsSingleton(); container.Register(logger); var commandProcessor = new CommandProcessor(registry, handlerFactory, new InMemoryRequestContextFactory(), new PolicyRegistry(), logger); commandProcessor.Send(testCommand); }
public void Setup() { var logger = new Mock <ILog>().Object; var registry = new SubscriberRegistry(); registry.Register <TestCommand, TestPreAndPostDecoratedHandler>(); registry.Register <TestCommand, TestLoggingHandler <TestCommand> >(); var container = new TinyIoCContainer(); var handlerFactory = new TinyIoCHandlerFactory(container); container.Register <IHandleRequests <TestCommand>, TestPreAndPostDecoratedHandler>(); container.Register <IHandleRequests <TestCommand>, TestValidationHandler <TestCommand> >(); container.Register <IHandleRequests <TestCommand>, TestLoggingHandler <TestCommand> >(); container.Register(logger); pipelineBuilder = new PipelineBuilder <TestCommand>(registry, handlerFactory, logger); pipelineBuilder.Build(new RequestContext()); pipelineBuilder.Dispose(); }