public void CorePluginsComposed_FromAllOtherPluginTypes() { ContainerFixture.Test(fixture => { fixture.Arrange.Container(c => { var hostPlugin = new MockHostPlugin(); hostPlugin.AddPluginType <MockTypeOneBasedOnKnownType>(); var appPlugin = new MockApplicationPlugin(); appPlugin.AddPluginType <MockTypeTwoBasedOnKnownType>(); var corePlugin = new MockCorePlugin(); corePlugin.AddPluginType <MockTypeThreeBasedOnKnownType>(); c.RegisterPlugins(hostPlugin, appPlugin, corePlugin); // This core plug-in contains a module that is composed // from types contained within the above plug-ins. var composedPlugin = new MockCorePlugin(); composedPlugin.AddModule <MockComposedModule>(); c.RegisterPlugins(composedPlugin); }) .Assert.PluginModule <MockComposedModule>(m => { m.ImportedTypes.Should().NotBeNull(); m.ImportedTypes.Should().HaveCount(3); m.ImportedTypes.OfType <MockTypeOneBasedOnKnownType>().Should().HaveCount(1); m.ImportedTypes.OfType <MockTypeTwoBasedOnKnownType>().Should().HaveCount(1); m.ImportedTypes.OfType <MockTypeThreeBasedOnKnownType>().Should().HaveCount(1); }); }); }
public void AppPluginsComposed_FromOnlyOtherAppPluginTypesOnly() { ContainerFixture.Test(fixture => { fixture.Arrange.Container(c => { var hostPlugin = new MockHostPlugin(); hostPlugin.AddPluginType <MockTypeOneBasedOnKnownType>(); var corePlugin = new MockCorePlugin(); corePlugin.AddPluginType <MockTypeThreeBasedOnKnownType>(); var corePlugin2 = new MockCorePlugin(); corePlugin2.AddPluginType <MockTypeTwoBasedOnKnownType>(); var appPlugin = new MockApplicationPlugin(); appPlugin.AddModule <MockComposedModule>(); c.RegisterPlugins(hostPlugin, corePlugin, corePlugin2, appPlugin); }) .Assert.PluginModule <MockComposedModule>(m => { m.ImportedTypes.Should().NotBeNull(); m.ImportedTypes.Should().HaveCount(1); m.ImportedTypes.OfType <MockTypeOneBasedOnKnownType>().Should().HaveCount(1); }); }); }
public static CompositeContainer WithRabbitMqHost(this CompositeContainer container, params Type[] hostTypes) { var hostPlugin = new MockHostPlugin(); hostPlugin.AddModule <HostModule>(); hostPlugin.AddPluginType(hostTypes); var corePlugin = new MockCorePlugin(); corePlugin.AddPluginType <BusSettings>(); corePlugin.AddModule <MockBusModule>(); corePlugin.AddModule <MockPublisherModule>(); corePlugin.AddModule <MockSubscriberModule>(); container.RegisterPlugin <MessagingPlugin>(); container.RegisterPlugins(corePlugin); container.RegisterPlugins(hostPlugin); return(container); }