Make majority of unit tests pass

This commit is contained in:
Mole
2020-09-21 14:35:28 +02:00
parent ed30cd1800
commit d512a43ba6
4 changed files with 18 additions and 11 deletions

View File

@@ -1,5 +1,6 @@
using System;
using Microsoft.Extensions.Logging;
using Umbraco.Core.Models;
namespace Umbraco.Core.Logging
@@ -12,7 +13,7 @@ namespace Umbraco.Core.Logging
/// <summary>
/// Gets the underlying <see cref="ILogger"/> implementation.
/// </summary>
public Microsoft.Extensions.Logging.ILogger Logger { get; }
public ILogger Logger { get; }
/// <summary>
/// Gets the underlying <see cref="IProfiler"/> implementation.
@@ -22,8 +23,9 @@ namespace Umbraco.Core.Logging
/// <summary>
/// Initializes a new instance of the <see cref="ProfilingLogger"/> class.
/// </summary>
public ProfilingLogger(Microsoft.Extensions.Logging.ILogger logger, IProfiler profiler)
public ProfilingLogger(ILogger logger, IProfiler profiler)
{
// TODO: Use typed logger
Logger = logger ?? throw new ArgumentNullException(nameof(logger));
Profiler = profiler ?? throw new ArgumentNullException(nameof(profiler));
}

View File

@@ -18,7 +18,6 @@ using Umbraco.Core.Persistence.Mappers;
using Umbraco.Core.Scoping;
using Umbraco.Tests.Common.Builders;
using Umbraco.Tests.TestHelpers;
using ILogger = Microsoft.Extensions.Logging.ILogger;
namespace Umbraco.Tests.Components
{
@@ -98,6 +97,7 @@ namespace Umbraco.Tests.Components
if (type == typeof(Composer5)) return new Composer5();
if (type == typeof(Component5)) return new Component5(new SomeResource());
if (type == typeof(IProfilingLogger)) return new ProfilingLogger(Mock.Of<ILogger>(), Mock.Of<IProfiler>());
if (type == typeof(ILogger)) return Mock.Of<ILogger>();
throw new NotSupportedException(type.FullName);
});
});

View File

@@ -91,7 +91,7 @@ namespace Umbraco.Tests.TestHelpers
return TestObjects.GetDatabaseFactoryMock();
var lazyMappers = new Lazy<IMapperCollection>(f.GetInstance<IMapperCollection>);
var factory = new UmbracoDatabaseFactory(f.GetInstance<Microsoft.Extensions.Logging.ILogger<UmbracoDatabaseFactory>>(), NullLoggerFactory.Instance, GetDbConnectionString(), GetDbProviderName(), lazyMappers, TestHelper.DbProviderFactoryCreator);
var factory = new UmbracoDatabaseFactory(f.GetInstance<ILogger<UmbracoDatabaseFactory>>(), f.GetInstance<ILoggerFactory>(), GetDbConnectionString(), GetDbProviderName(), lazyMappers, TestHelper.DbProviderFactoryCreator);
factory.ResetForTests();
return factory;
});

View File

@@ -120,8 +120,9 @@ namespace Umbraco.Tests.Testing
#region Accessors
protected ServiceContext ServiceContext => Factory.GetInstance<ServiceContext>();
protected ILoggerFactory LoggerFactory => Factory.GetInstance<ILoggerFactory>();
protected IJsonSerializer JsonNetSerializer { get; } = new JsonNetSerializer();
protected IIOHelper IOHelper { get; private set; }
@@ -154,6 +155,7 @@ namespace Umbraco.Tests.Testing
protected UmbracoMapper Mapper => Factory.GetInstance<UmbracoMapper>();
protected IHttpContextAccessor HttpContextAccessor => Factory.GetInstance<IHttpContextAccessor>();
protected IRuntimeState RuntimeState => ComponentTests.MockRuntimeState(RuntimeLevel.Run);
private ILoggerFactory _loggerFactory;
#endregion
@@ -172,6 +174,7 @@ namespace Umbraco.Tests.Testing
// FIXME: align to runtimes & components - don't redo everything here !!!! Yes this is getting painful
var loggerFactory = GetLoggerFactory(Options.Logger);
_loggerFactory = loggerFactory;
var profiler = new LogProfiler(loggerFactory.CreateLogger<LogProfiler>());
var msLogger = loggerFactory.CreateLogger("msLogger");
var proflogger = new ProfilingLogger(loggerFactory.CreateLogger("ProfilingLogger"), profiler);
@@ -198,15 +201,17 @@ namespace Umbraco.Tests.Testing
//TestHelper.GetConfigs().RegisterWith(register);
Composition.Register<ILoggerFactory>(new NullLoggerFactory());
Composition.Register(typeof(Microsoft.Extensions.Logging.ILogger<>), typeof(Logger<>));
Composition.RegisterUnique(typeof(ILoggerFactory), loggerFactory);
Composition.Register(typeof(ILogger<>), typeof(Logger<>));
// TODO Remove this at some point
Composition.Register(typeof(Microsoft.Extensions.Logging.ILogger), msLogger);
Composition.RegisterUnique(IOHelper);
Composition.RegisterUnique(UriUtility);
Composition.RegisterUnique(UmbracoVersion);
Composition.RegisterUnique(TypeFinder);
Composition.RegisterUnique(LocalizedTextService);
Composition.RegisterUnique(typeLoader);
Composition.RegisterUnique(profiler);
Composition.RegisterUnique<IProfiler>(profiler);
Composition.RegisterUnique<IProfilingLogger>(proflogger);
Composition.RegisterUnique(appCaches);
Composition.RegisterUnique(HostingEnvironment);
@@ -453,7 +458,7 @@ namespace Umbraco.Tests.Testing
var scheme = Mock.Of<IMediaPathScheme>();
var mediaFileSystem = new MediaFileSystem(Mock.Of<IFileSystem>(), scheme, LoggerFactory.CreateLogger<MediaFileSystem>(), TestHelper.ShortStringHelper);
var mediaFileSystem = new MediaFileSystem(Mock.Of<IFileSystem>(), scheme, _loggerFactory.CreateLogger<MediaFileSystem>(), TestHelper.ShortStringHelper);
Composition.RegisterUnique<IMediaFileSystem>(factory => mediaFileSystem);
// no factory (noop)
@@ -468,7 +473,7 @@ namespace Umbraco.Tests.Testing
var globalSettings = new GlobalSettingsBuilder().Build();
var connectionStrings = new ConnectionStringsBuilder().Build();
Composition.RegisterUnique<IUmbracoDatabaseFactory>(f => new UmbracoDatabaseFactory(LoggerFactory.CreateLogger<UmbracoDatabaseFactory>(),
Composition.RegisterUnique<IUmbracoDatabaseFactory>(f => new UmbracoDatabaseFactory(_loggerFactory.CreateLogger<UmbracoDatabaseFactory>(),
LoggerFactory,
globalSettings,
connectionStrings,
@@ -480,7 +485,7 @@ namespace Umbraco.Tests.Testing
Composition.WithCollectionBuilder<UrlSegmentProviderCollectionBuilder>(); // empty
Composition.RegisterUnique(factory
=> TestObjects.GetScopeProvider(factory.TryGetInstance<ILoggerFactory>(), factory.TryGetInstance<ITypeFinder>(), factory.TryGetInstance<FileSystems>(), factory.TryGetInstance<IUmbracoDatabaseFactory>()));
=> TestObjects.GetScopeProvider(_loggerFactory, factory.TryGetInstance<ITypeFinder>(), factory.TryGetInstance<FileSystems>(), factory.TryGetInstance<IUmbracoDatabaseFactory>()));
Composition.RegisterUnique(factory => (IScopeAccessor) factory.GetInstance<IScopeProvider>());
Composition.ComposeServices();