From 2bbdb699f2011b4aed7a573a266bca59feeae950 Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 24 Mar 2020 11:59:42 +1100 Subject: [PATCH] reduces code duplication --- .../Composing/UmbracoServiceProviderFactory.cs | 8 +++++++- src/Umbraco.Tests.Common/TestHelperBase.cs | 3 +++ src/Umbraco.Tests.Integration/ContainerTests.cs | 2 +- src/Umbraco.Tests.Integration/RuntimeTests.cs | 4 ++-- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Infrastructure/Composing/UmbracoServiceProviderFactory.cs b/src/Umbraco.Infrastructure/Composing/UmbracoServiceProviderFactory.cs index 1d79bf9837..6fd0bda61e 100644 --- a/src/Umbraco.Infrastructure/Composing/UmbracoServiceProviderFactory.cs +++ b/src/Umbraco.Infrastructure/Composing/UmbracoServiceProviderFactory.cs @@ -17,12 +17,18 @@ namespace Umbraco.Core.Composing _container = new LightInjectContainer(container); } + /// + /// Creates an ASP.NET Core compatible service container + /// + /// + public static ServiceContainer CreateServiceContainer() => new ServiceContainer(ContainerOptions.Default.Clone().WithMicrosoftSettings().WithAspNetCoreSettings()); + /// /// Default ctor for use in Host Builder configuration /// public UmbracoServiceProviderFactory() { - var container = new ServiceContainer(ContainerOptions.Default.Clone().WithMicrosoftSettings().WithAspNetCoreSettings()); + var container = CreateServiceContainer(); UmbracoContainer = _container = new LightInjectContainer(container); IsActive = true; } diff --git a/src/Umbraco.Tests.Common/TestHelperBase.cs b/src/Umbraco.Tests.Common/TestHelperBase.cs index 536bebee56..f336d0922d 100644 --- a/src/Umbraco.Tests.Common/TestHelperBase.cs +++ b/src/Umbraco.Tests.Common/TestHelperBase.cs @@ -1,6 +1,9 @@ using System; using System.IO; using System.Reflection; +using LightInject; +using LightInject.Microsoft.DependencyInjection; +using Microsoft.Extensions.Hosting; using Moq; using Umbraco.Core; using Umbraco.Core.Cache; diff --git a/src/Umbraco.Tests.Integration/ContainerTests.cs b/src/Umbraco.Tests.Integration/ContainerTests.cs index b85471b95a..d190d1165d 100644 --- a/src/Umbraco.Tests.Integration/ContainerTests.cs +++ b/src/Umbraco.Tests.Integration/ContainerTests.cs @@ -28,7 +28,7 @@ namespace Umbraco.Tests.Integration var msdiServiceProvider = services.BuildServiceProvider(); // LightInject / Umbraco - var container = new ServiceContainer(ContainerOptions.Default.Clone().WithMicrosoftSettings().WithAspNetCoreSettings()); + var container = UmbracoServiceProviderFactory.CreateServiceContainer(); var serviceProviderFactory = new UmbracoServiceProviderFactory(container); 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 4b5cb30544..24786a1591 100644 --- a/src/Umbraco.Tests.Integration/RuntimeTests.cs +++ b/src/Umbraco.Tests.Integration/RuntimeTests.cs @@ -24,7 +24,7 @@ namespace Umbraco.Tests.Integration public void BootCoreRuntime() { // LightInject / Umbraco - var container = new ServiceContainer(ContainerOptions.Default.Clone().WithMicrosoftSettings().WithAspNetCoreSettings()); + var container = UmbracoServiceProviderFactory.CreateServiceContainer(); var serviceProviderFactory = new UmbracoServiceProviderFactory(container); var umbracoContainer = serviceProviderFactory.GetContainer(); @@ -65,7 +65,7 @@ namespace Umbraco.Tests.Integration services.AddSingleton(x => Mock.Of()); // LightInject / Umbraco - var container = new ServiceContainer(ContainerOptions.Default.Clone().WithMicrosoftSettings().WithAspNetCoreSettings()); + var container = UmbracoServiceProviderFactory.CreateServiceContainer(); var serviceProviderFactory = new UmbracoServiceProviderFactory(container); var umbracoContainer = serviceProviderFactory.GetContainer();