public InfrastructureFixture() { MartenDatabaseFixture = new MartenDatabaseFixture(); var builder = new ContainerBuilder(); builder.Register(context => MartenDatabaseFixture.DocumentStore).As <IDocumentStore>().SingleInstance(); builder.Register(context => context.Resolve <IDocumentStore>().OpenSession()) .As <IDocumentSession>() .InstancePerLifetimeScope(); builder.RegisterType <AddressFactory>() .As <Frameworks.Light.Ddd.IAggregateFactory <Address, AddressFactoryInput, Guid> >() .InstancePerLifetimeScope(); builder.RegisterType <GenericMartenRepository <Address> >() .As <IRepository <Address, Guid> >().InstancePerLifetimeScope(); builder.RegisterType <PaymentsDataProvider>().As <IPaymentsDataProvider>().InstancePerLifetimeScope(); builder.RegisterConsumers(typeof(MeterMountedAtAddressConsumer).Assembly, typeof(AddressAddedConsumer).Assembly); builder.Register(context => { return(MassTransit.Bus.Factory.CreateUsingInMemory(configurator => { configurator.ReceiveEndpoint("Home.Bills.Payments", endpointConfigurator => { endpointConfigurator.LoadFrom(context); }); })); }).SingleInstance() .As <IBusControl>() .As <IBus>(); AutofacContainer = builder.Build(); Bus = AutofacContainer.Resolve <IBusControl>(); Bus.Start(); }
public void Dispose() { Bus?.Stop(); AutofacContainer?.Dispose(); MartenDatabaseFixture?.Dispose(); }