public void Should_throw_exception_when_creating_unknown_process() { var transportMessage = new TransportMessage(); var activator = new DefaultProcessActivator(); Assert.Throws<ProcessException>(() => activator.Create(transportMessage, new MockRegisterMemberCommand())); }
public void Should_throw_exception_when_no_resolver_for_message_to_multiple_processes() { var transportMessage = new TransportMessage(); var activator = new DefaultProcessActivator(); activator.RegisterMappings(); Assert.Throws<ProcessException>(() => activator.Create(transportMessage, new MockEMailSentEvent())); }
public void Should_be_able_to_start_process() { var transportMessage = new TransportMessage(); var activator = new DefaultProcessActivator(); activator.RegisterMappings(); Assert.IsTrue(typeof (MockOrderProcess) == activator.Create(transportMessage, new MockRegisterOrderCommand()).GetType()); Assert.IsTrue(typeof (MockMemberRegistrationProcess) == activator.Create(transportMessage, new MockRegisterMemberCommand()).GetType()); }
public void Should_be_able_to_request_mapping_registration() { var transportMessage = new TransportMessage(); var activator = new DefaultProcessActivator(); activator.RegisterMappings(); Assert.IsFalse(activator.IsProcessMessage(transportMessage, new MockNullCommand())); Assert.IsTrue(activator.IsProcessMessage(transportMessage, new MockRegisterOrderCommand())); Assert.IsTrue(activator.IsProcessMessage(transportMessage, new MockEMailSentEvent())); Assert.IsTrue(activator.IsProcessMessage(transportMessage, new MockCompleteOrderCommand())); Assert.IsTrue(activator.IsProcessMessage(transportMessage, new MockRegisterMemberCommand())); Assert.IsTrue(activator.IsProcessMessage(transportMessage, new MockCompleteMemberRegistrationCommand())); }
public void Should_be_able_to_resolve_message_to_multiple_processes() { var transportMessage = new TransportMessage { CorrelationId = Guid.NewGuid().ToString() }; var activator = new DefaultProcessActivator(); activator.RegisterMappings(); activator.RegisterResolver<MockEMailSentEvent>( (transport, message) => new MessageProcessType(typeof (MockOrderProcess), false)); var instance = activator.Create(transportMessage, new MockEMailSentEvent()); Assert.IsTrue(instance.GetType() == typeof (MockOrderProcess)); }
public void Start() { Log.Assign(new Log4NetLog(LogManager.GetLogger(typeof(Host)))); _container = new WindsorContainer(); _container.RegisterDataAccessCore(); _container.RegisterDataAccess("Shuttle.ProcessManagement"); _container.Register(Component.For <IEventStore>().ImplementedBy <EventStore>()); _container.Register(Component.For <IKeyStore>().ImplementedBy <KeyStore>()); _container.Register(Component.For <ISerializer>().ImplementedBy <DefaultSerializer>()); _container.Register(Component.For <IEventStoreQueryFactory>().ImplementedBy <EventStoreQueryFactory>()); _container.Register(Component.For <IKeyStoreQueryFactory>().ImplementedBy <KeyStoreQueryFactory>()); var subscriptionManager = SubscriptionManager.Default(); subscriptionManager.Subscribe <OrderCreatedEvent>(); subscriptionManager.Subscribe <InvoiceCreatedEvent>(); subscriptionManager.Subscribe <EMailSentEvent>(); var processConfiguration = ProcessSection.Configuration(); var processActivator = new DefaultProcessActivator(); processActivator.RegisterMappings(); processConfiguration.ProcessActivator = processActivator; _bus = ServiceBus.Create( c => { c.MessageHandlerFactory(new CastleMessageHandlerFactory(_container).RegisterHandlers()); c.SubscriptionManager(subscriptionManager); c.AddModule(new ProcessModule(_container.Resolve <IDatabaseContextFactory>(), _container.Resolve <IEventStore>(), _container.Resolve <IKeyStore>(), processConfiguration)); }).Start(); }