public static WindsorContainer SetupContainerForTesting()
{
var container = new WindsorContainer();
container.ConfigureWiringForTestsCallBeforeAllOtherWiring();
container.Register(
Component.For<MessageSpy, IHandleMessages<IMessage>>().Instance(new MessageSpy()),
Component.For<IUtcTimeTimeSource, DummyTimeSource>().Instance(DummyTimeSource.Now).LifestyleSingleton(),
Component.For<IServiceBus>().ImplementedBy<SynchronousBus>().LifestylePerWebRequest(),
Component.For<IWindsorContainer>().Instance(container),
Component.For<IConnectionStringProvider>().Instance(new ConnectionStringConfigurationParameterProvider()).LifestyleSingleton()
);
container.Install(
FromAssembly.Containing<Domain.ContainerInstallers.AccountRepositoryInstaller>(),
FromAssembly.Containing<Domain.Events.EventStore.ContainerInstallers.AccountManagementDomainEventStoreInstaller>()
);
container.ConfigureWiringForTestsCallAfterAllOtherWiring();
return container;
}
}