Fixes tests

This commit is contained in:
Shannon
2020-05-12 17:14:39 +10:00
parent f427059d41
commit a34d94845c
4 changed files with 19 additions and 12 deletions

View File

@@ -14,9 +14,10 @@ namespace Umbraco.Core.Composing
/// </summary>
public class UmbracoServiceProviderFactory : IServiceProviderFactory<IServiceContainer>
{
public UmbracoServiceProviderFactory(ServiceContainer container)
public UmbracoServiceProviderFactory(ServiceContainer container, bool initializeCurrent)
{
_container = new LightInjectContainer(container);
_initializeCurrent = initializeCurrent;
}
/// <summary>
@@ -37,6 +38,7 @@ namespace Umbraco.Core.Composing
var container = CreateServiceContainer();
UmbracoContainer = _container = new LightInjectContainer(container);
IsActive = true;
_initializeCurrent = true;
}
// see here for orig lightinject version https://github.com/seesharper/LightInject.Microsoft.DependencyInjection/blob/412566e3f70625e6b96471db5e1f7cd9e3e1eb18/src/LightInject.Microsoft.DependencyInjection/LightInject.Microsoft.DependencyInjection.cs#L263
@@ -45,6 +47,7 @@ namespace Umbraco.Core.Composing
IServiceCollection _services;
readonly LightInjectContainer _container;
private readonly bool _initializeCurrent;
internal LightInjectContainer GetContainer() => _container;
@@ -78,14 +81,18 @@ namespace Umbraco.Core.Composing
{
var provider = containerBuilder.CreateServiceProvider(_services);
// after cross wiring, configure "Current"
Current.Initialize(
_container.GetInstance<Umbraco.Core.Logging.ILogger>(),
_container.GetInstance<Configs>(),
_container.GetInstance<IIOHelper>(),
_container.GetInstance<Umbraco.Core.Hosting.IHostingEnvironment>(),
_container.GetInstance<IBackOfficeInfo>(),
_container.GetInstance<Umbraco.Core.Logging.IProfiler>());
if (_initializeCurrent)
{
// after cross wiring, configure "Current"
Current.Initialize(
_container.GetInstance<Umbraco.Core.Logging.ILogger>(),
_container.GetInstance<Configs>(),
_container.GetInstance<IIOHelper>(),
_container.GetInstance<Umbraco.Core.Hosting.IHostingEnvironment>(),
_container.GetInstance<IBackOfficeInfo>(),
_container.GetInstance<Umbraco.Core.Logging.IProfiler>());
}
return provider;
}

View File

@@ -31,7 +31,7 @@ namespace Umbraco.Tests.Integration
// LightInject / Umbraco
var container = UmbracoServiceProviderFactory.CreateServiceContainer();
var serviceProviderFactory = new UmbracoServiceProviderFactory(container);
var serviceProviderFactory = new UmbracoServiceProviderFactory(container, false);
var umbracoContainer = serviceProviderFactory.GetContainer();
serviceProviderFactory.CreateBuilder(services); // called during Host Builder, needed to capture services

View File

@@ -47,7 +47,7 @@ namespace Umbraco.Tests.Integration
{
// LightInject / Umbraco
var container = UmbracoServiceProviderFactory.CreateServiceContainer();
var serviceProviderFactory = new UmbracoServiceProviderFactory(container);
var serviceProviderFactory = new UmbracoServiceProviderFactory(container, false);
var umbracoContainer = serviceProviderFactory.GetContainer();
// Special case since we are not using the Generic Host, we need to manually add an AspNetCore service to the container

View File

@@ -35,7 +35,7 @@ namespace Umbraco.Tests.Integration.Testing
public static LightInjectContainer GetUmbracoContainer(out UmbracoServiceProviderFactory serviceProviderFactory)
{
var container = UmbracoServiceProviderFactory.CreateServiceContainer();
serviceProviderFactory = new UmbracoServiceProviderFactory(container);
serviceProviderFactory = new UmbracoServiceProviderFactory(container, false);
var umbracoContainer = serviceProviderFactory.GetContainer();
return umbracoContainer;
}