public static IObjectContainer CreateContainer(IRuntimeConfigurationProvider configurationProvider = null)
        {
            var container = new ObjectContainer();

            RegisterDefaults(container);

            if (configurationProvider != null)
            {
                container.RegisterInstanceAs(configurationProvider);
            }

            configurationProvider = configurationProvider ?? container.Resolve <IRuntimeConfigurationProvider>();

            var pluginLoader = container.Resolve <IRuntimePluginLoader>();
            var plugins      = configurationProvider.GetPlugins().Select(pd => LoadPlugin(pluginLoader, pd)).ToArray();

            foreach (var plugin in plugins)
            {
                plugin.RegisterDefaults(container);
            }

            RuntimeConfiguration runtimeConfiguration = new RuntimeConfiguration();

            foreach (var defaultsProvider in container.Resolve <IDictionary <string, IRuntimeConfigurationDefaultsProvider> >().Values)
            {
                defaultsProvider.SetDefaultConfiguration(runtimeConfiguration);
            }
            configurationProvider.LoadConfiguration(runtimeConfiguration);

#if !BODI_LIMITEDRUNTIME
            if (runtimeConfiguration.CustomDependencies != null)
            {
                container.RegisterFromConfiguration(runtimeConfiguration.CustomDependencies);
            }
#endif

            container.RegisterInstanceAs(runtimeConfiguration);

            if (runtimeConfiguration.TraceListenerType != null)
            {
                container.RegisterTypeAs <ITraceListener>(runtimeConfiguration.TraceListenerType);
            }

            if (runtimeConfiguration.RuntimeUnitTestProvider != null)
            {
                container.RegisterInstanceAs(container.Resolve <IUnitTestRuntimeProvider>(runtimeConfiguration.RuntimeUnitTestProvider));
            }

            foreach (var plugin in plugins)
            {
                plugin.RegisterCustomizations(container, runtimeConfiguration);
            }

            return(container);
        }
Esempio n. 2
0
        public virtual IObjectContainer CreateGlobalContainer(Assembly testAssembly, IRuntimeConfigurationProvider configurationProvider = null)
        {
            var container = new ObjectContainer();

            container.RegisterInstanceAs <IContainerBuilder>(this);

            RegisterDefaults(container);

            var testAssemblyProvider = container.Resolve <ITestAssemblyProvider>();

            testAssemblyProvider.RegisterTestAssembly(testAssembly);

            if (configurationProvider != null)
            {
                container.RegisterInstanceAs(configurationProvider);
            }

            configurationProvider = configurationProvider ?? container.Resolve <IRuntimeConfigurationProvider>();

            container.RegisterTypeAs <RuntimePluginEvents, RuntimePluginEvents>(); //NOTE: we need this unnecessary registration, due to a bug in BoDi (does not inherit non-registered objects)
            var runtimePluginEvents = container.Resolve <RuntimePluginEvents>();

            SpecFlowConfiguration specFlowConfiguration = ConfigurationLoader.GetDefault();

            specFlowConfiguration = configurationProvider.LoadConfiguration(specFlowConfiguration);

            if (specFlowConfiguration.CustomDependencies != null)
            {
                container.RegisterFromConfiguration(specFlowConfiguration.CustomDependencies);
            }

            var unitTestProviderConfigration = container.Resolve <UnitTestProviderConfiguration>();

            LoadPlugins(configurationProvider, container, runtimePluginEvents, specFlowConfiguration, unitTestProviderConfigration, testAssembly);

            runtimePluginEvents.RaiseConfigurationDefaults(specFlowConfiguration);

            runtimePluginEvents.RaiseRegisterGlobalDependencies(container);

            container.RegisterInstanceAs(specFlowConfiguration);

            if (unitTestProviderConfigration != null)
            {
                container.RegisterInstanceAs(container.Resolve <IUnitTestRuntimeProvider>(unitTestProviderConfigration.UnitTestProvider ?? ConfigDefaults.UnitTestProviderName));
            }

            runtimePluginEvents.RaiseCustomizeGlobalDependencies(container, specFlowConfiguration);

            container.Resolve <IConfigurationLoader>().TraceConfigSource(container.Resolve <ITraceListener>(), specFlowConfiguration);

            return(container);
        }
        public virtual IObjectContainer CreateContainer(IRuntimeConfigurationProvider configurationProvider = null)
        {
            var container = new ObjectContainer();

            container.RegisterInstanceAs <ITestRunContainerBuilder>(this);

            RegisterDefaults(container);

            if (configurationProvider != null)
            {
                container.RegisterInstanceAs(configurationProvider);
            }

            configurationProvider = configurationProvider ?? container.Resolve <IRuntimeConfigurationProvider>();

            var plugins = LoadPlugins(configurationProvider, container);

            foreach (var plugin in plugins)
            {
                plugin.RegisterDependencies(container);
            }

            RuntimeConfiguration runtimeConfiguration = new RuntimeConfiguration();

            foreach (var plugin in plugins)
            {
                plugin.RegisterConfigurationDefaults(runtimeConfiguration);
            }

            configurationProvider.LoadConfiguration(runtimeConfiguration);

#if !BODI_LIMITEDRUNTIME
            if (runtimeConfiguration.CustomDependencies != null)
            {
                container.RegisterFromConfiguration(runtimeConfiguration.CustomDependencies);
            }
#endif

            container.RegisterInstanceAs(runtimeConfiguration);

            if (runtimeConfiguration.RuntimeUnitTestProvider != null)
            {
                container.RegisterInstanceAs(container.Resolve <IUnitTestRuntimeProvider>(runtimeConfiguration.RuntimeUnitTestProvider));
            }

            foreach (var plugin in plugins)
            {
                plugin.RegisterCustomizations(container, runtimeConfiguration);
            }

            return(container);
        }
Esempio n. 4
0
        public virtual IObjectContainer CreateGlobalContainer(IRuntimeConfigurationProvider configurationProvider = null)
        {
            var container = new ObjectContainer();

            container.RegisterInstanceAs <IContainerBuilder>(this);

            RegisterDefaults(container);

            if (configurationProvider != null)
            {
                container.RegisterInstanceAs(configurationProvider);
            }

            configurationProvider = configurationProvider ?? container.Resolve <IRuntimeConfigurationProvider>();

            container.RegisterTypeAs <RuntimePluginEvents, RuntimePluginEvents>(); //NOTE: we need this unnecessary registration, due to a bug in BoDi (does not inherit non-registered objects)
            var runtimePluginEvents = container.Resolve <RuntimePluginEvents>();

            LoadPlugins(configurationProvider, container, runtimePluginEvents);

            runtimePluginEvents.RaiseRegisterGlobalDependencies(container);

            RuntimeConfiguration runtimeConfiguration = new RuntimeConfiguration();

            runtimePluginEvents.RaiseConfigurationDefaults(runtimeConfiguration);

            configurationProvider.LoadConfiguration(runtimeConfiguration);

#if !BODI_LIMITEDRUNTIME
            if (runtimeConfiguration.CustomDependencies != null)
            {
                container.RegisterFromConfiguration(runtimeConfiguration.CustomDependencies);
            }
#endif

            container.RegisterInstanceAs(runtimeConfiguration);

            if (runtimeConfiguration.RuntimeUnitTestProvider != null)
            {
                container.RegisterInstanceAs(container.Resolve <IUnitTestRuntimeProvider>(runtimeConfiguration.RuntimeUnitTestProvider));
            }

            runtimePluginEvents.RaiseCustomizeGlobalDependencies(container, runtimeConfiguration);

            return(container);
        }
        public static IObjectContainer CreateContainer(IRuntimeConfigurationProvider configurationProvider = null)
        {
            var container = new ObjectContainer();

            RegisterDefaults(container);

            if (configurationProvider != null)
                container.RegisterInstanceAs(configurationProvider);

            configurationProvider = configurationProvider ?? container.Resolve<IRuntimeConfigurationProvider>();

            var pluginLoader = container.Resolve<IRuntimePluginLoader>();
            var plugins = configurationProvider.GetPlugins().Select(pd => LoadPlugin(pluginLoader, pd)).ToArray();
            foreach (var plugin in plugins)
            {
                plugin.RegisterDefaults(container);
            }

            RuntimeConfiguration runtimeConfiguration = new RuntimeConfiguration();
            foreach (var defaultsProvider in container.Resolve<IDictionary<string, IRuntimeConfigurationDefaultsProvider>>().Values)
            {
                defaultsProvider.SetDefaultConfiguration(runtimeConfiguration);
            }
            configurationProvider.LoadConfiguration(runtimeConfiguration);

#if !BODI_LIMITEDRUNTIME
            if (runtimeConfiguration.CustomDependencies != null)
                container.RegisterFromConfiguration(runtimeConfiguration.CustomDependencies);
#endif

            container.RegisterInstanceAs(runtimeConfiguration);

            if (runtimeConfiguration.TraceListenerType != null)
                container.RegisterTypeAs<ITraceListener>(runtimeConfiguration.TraceListenerType);

            if (runtimeConfiguration.RuntimeUnitTestProvider != null)
                container.RegisterInstanceAs(container.Resolve<IUnitTestRuntimeProvider>(runtimeConfiguration.RuntimeUnitTestProvider));

            foreach (var plugin in plugins)
            {
                plugin.RegisterCustomizations(container, runtimeConfiguration);
            }

            return container;
        }
        public virtual IObjectContainer CreateContainer(IRuntimeConfigurationProvider configurationProvider = null)
        {
            var container = new ObjectContainer();
            container.RegisterInstanceAs<ITestRunContainerBuilder>(this);

            RegisterDefaults(container);

            if (configurationProvider != null)
                container.RegisterInstanceAs(configurationProvider);

            configurationProvider = configurationProvider ?? container.Resolve<IRuntimeConfigurationProvider>();

            var plugins = LoadPlugins(configurationProvider, container);
            foreach (var plugin in plugins)
                plugin.RegisterDependencies(container);

            RuntimeConfiguration runtimeConfiguration = new RuntimeConfiguration();

            foreach (var plugin in plugins)
                plugin.RegisterConfigurationDefaults(runtimeConfiguration);

            configurationProvider.LoadConfiguration(runtimeConfiguration);

#if !BODI_LIMITEDRUNTIME
            if (runtimeConfiguration.CustomDependencies != null)
                container.RegisterFromConfiguration(runtimeConfiguration.CustomDependencies);
#endif

            container.RegisterInstanceAs(runtimeConfiguration);

            if (runtimeConfiguration.RuntimeUnitTestProvider != null)
                container.RegisterInstanceAs(container.Resolve<IUnitTestRuntimeProvider>(runtimeConfiguration.RuntimeUnitTestProvider));

            foreach (var plugin in plugins)
                plugin.RegisterCustomizations(container, runtimeConfiguration);

            return container;
        }
Esempio n. 7
-1
        public virtual IObjectContainer CreateGlobalContainer(IRuntimeConfigurationProvider configurationProvider = null)
        {
            var container = new ObjectContainer();
            container.RegisterInstanceAs<IContainerBuilder>(this);

            RegisterDefaults(container);

            if (configurationProvider != null)
                container.RegisterInstanceAs(configurationProvider);

            configurationProvider = configurationProvider ?? container.Resolve<IRuntimeConfigurationProvider>();

            container.RegisterTypeAs<RuntimePluginEvents, RuntimePluginEvents>(); //NOTE: we need this unnecessary registration, due to a bug in BoDi (does not inherit non-registered objects)
            var runtimePluginEvents = container.Resolve<RuntimePluginEvents>();
            LoadPlugins(configurationProvider, container, runtimePluginEvents);

            runtimePluginEvents.RaiseRegisterGlobalDependencies(container);

            RuntimeConfiguration runtimeConfiguration = new RuntimeConfiguration();

            runtimePluginEvents.RaiseConfigurationDefaults(runtimeConfiguration);

            configurationProvider.LoadConfiguration(runtimeConfiguration);

            #if !BODI_LIMITEDRUNTIME
            if (runtimeConfiguration.CustomDependencies != null)
                container.RegisterFromConfiguration(runtimeConfiguration.CustomDependencies);
            #endif

            container.RegisterInstanceAs(runtimeConfiguration);

            if (runtimeConfiguration.RuntimeUnitTestProvider != null)
                container.RegisterInstanceAs(container.Resolve<IUnitTestRuntimeProvider>(runtimeConfiguration.RuntimeUnitTestProvider));

            runtimePluginEvents.RaiseCustomizeGlobalDependencies(container, runtimeConfiguration);

            return container;
        }