From a34d94845c2f8c734ebbb3e9fcbd986d928876e9 Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 12 May 2020 17:14:39 +1000 Subject: [PATCH] Fixes tests --- .../UmbracoServiceProviderFactory.cs | 25 ++++++++++++------- .../ContainerTests.cs | 2 +- src/Umbraco.Tests.Integration/RuntimeTests.cs | 2 +- .../Testing/UmbracoIntegrationTest.cs | 2 +- 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/Umbraco.Infrastructure/Composing/UmbracoServiceProviderFactory.cs b/src/Umbraco.Infrastructure/Composing/UmbracoServiceProviderFactory.cs index 9efbaee7f1..5931d73365 100644 --- a/src/Umbraco.Infrastructure/Composing/UmbracoServiceProviderFactory.cs +++ b/src/Umbraco.Infrastructure/Composing/UmbracoServiceProviderFactory.cs @@ -14,9 +14,10 @@ namespace Umbraco.Core.Composing /// public class UmbracoServiceProviderFactory : IServiceProviderFactory { - public UmbracoServiceProviderFactory(ServiceContainer container) + public UmbracoServiceProviderFactory(ServiceContainer container, bool initializeCurrent) { _container = new LightInjectContainer(container); + _initializeCurrent = initializeCurrent; } /// @@ -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(), - _container.GetInstance(), - _container.GetInstance(), - _container.GetInstance(), - _container.GetInstance(), - _container.GetInstance()); + if (_initializeCurrent) + { + // after cross wiring, configure "Current" + Current.Initialize( + _container.GetInstance(), + _container.GetInstance(), + _container.GetInstance(), + _container.GetInstance(), + _container.GetInstance(), + _container.GetInstance()); + } + return provider; } diff --git a/src/Umbraco.Tests.Integration/ContainerTests.cs b/src/Umbraco.Tests.Integration/ContainerTests.cs index 34a32a38a8..2098b7241e 100644 --- a/src/Umbraco.Tests.Integration/ContainerTests.cs +++ b/src/Umbraco.Tests.Integration/ContainerTests.cs @@ -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 diff --git a/src/Umbraco.Tests.Integration/RuntimeTests.cs b/src/Umbraco.Tests.Integration/RuntimeTests.cs index 69119b7984..4c55cad373 100644 --- a/src/Umbraco.Tests.Integration/RuntimeTests.cs +++ b/src/Umbraco.Tests.Integration/RuntimeTests.cs @@ -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 diff --git a/src/Umbraco.Tests.Integration/Testing/UmbracoIntegrationTest.cs b/src/Umbraco.Tests.Integration/Testing/UmbracoIntegrationTest.cs index d479ad7213..5d7056f4d0 100644 --- a/src/Umbraco.Tests.Integration/Testing/UmbracoIntegrationTest.cs +++ b/src/Umbraco.Tests.Integration/Testing/UmbracoIntegrationTest.cs @@ -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; }