From 189471cabade01f4352207b2548be10a9469b4be Mon Sep 17 00:00:00 2001 From: Andrew Warren-Love Date: Mon, 4 Dec 2017 10:11:56 -0500 Subject: [PATCH] demonstrate issue #169 --- .../DependencyInjection/OcelotBuilderTests.cs | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/test/Ocelot.UnitTests/DependencyInjection/OcelotBuilderTests.cs b/test/Ocelot.UnitTests/DependencyInjection/OcelotBuilderTests.cs index 138ea496..834879c5 100644 --- a/test/Ocelot.UnitTests/DependencyInjection/OcelotBuilderTests.cs +++ b/test/Ocelot.UnitTests/DependencyInjection/OcelotBuilderTests.cs @@ -5,12 +5,15 @@ using System.Net.Http; using System.Text; using CacheManager.Core; using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Hosting.Internal; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Ocelot.Cache; using Ocelot.Configuration; using Ocelot.Configuration.File; +using Ocelot.Configuration.Setter; using Ocelot.DependencyInjection; +using Ocelot.Logging; using Shouldly; using TestStack.BDDfy; using Xunit; @@ -20,6 +23,7 @@ namespace Ocelot.UnitTests.DependencyInjection public class OcelotBuilderTests { private IServiceCollection _services; + private IServiceProvider _serviceProvider; private IConfigurationRoot _configRoot; private IOcelotBuilder _ocelotBuilder; private int _maxRetries; @@ -30,6 +34,7 @@ namespace Ocelot.UnitTests.DependencyInjection _configRoot = new ConfigurationRoot(new List()); _services = new ServiceCollection(); _services.AddSingleton(builder); + _services.AddSingleton(); _maxRetries = 100; } private Exception _ex; @@ -70,6 +75,16 @@ namespace Ocelot.UnitTests.DependencyInjection .BDDfy(); } + [Fact] + public void should_use_logger_factory() + { + this.Given(x => WhenISetUpOcelotServices()) + .When(x => WhenIValidateScopes()) + .When(x => WhenIAccessLoggerFactory()) + .Then(x => ThenAnExceptionIsntThrown()) + .BDDfy(); + } + private void OnlyOneVersionOfEachCacheIsRegistered() { var outputCache = _services.Single(x => x.ServiceType == typeof(IOcelotCache)); @@ -127,6 +142,30 @@ namespace Ocelot.UnitTests.DependencyInjection } } + private void WhenIAccessLoggerFactory() + { + try + { + var logger = _serviceProvider.GetService(); + } + catch (Exception e) + { + _ex = e; + } + } + + private void WhenIValidateScopes() + { + try + { + _serviceProvider = _services.BuildServiceProvider(new ServiceProviderOptions { ValidateScopes = true }); + } + catch (Exception e) + { + _ex = e; + } + } + private void ThenAnExceptionIsntThrown() { _ex.ShouldBeNull();