V10: fix build warnings in test projects (#12509)

* Run code cleanup

* Dotnet format benchmarks project

* Fix up Test.Common

* Run dotnet format + manual cleanup

* Run code cleanup for unit tests

* Run dotnet format

* Fix up errors

* Manual cleanup of Unit test project

* Update tests/Umbraco.Tests.Benchmarks/HexStringBenchmarks.cs

Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>

* Update tests/Umbraco.Tests.Integration/Testing/TestDbMeta.cs

Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>

* Update tests/Umbraco.Tests.Benchmarks/TypeFinderBenchmarks.cs

Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>

* Update tests/Umbraco.Tests.Integration/Testing/UmbracoIntegrationTest.cs

Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>

* Update tests/Umbraco.Tests.Integration/Umbraco.Core/Events/EventAggregatorTests.cs

Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>

* Fix according to review

* Fix after merge

* Fix errors

Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
Co-authored-by: Zeegaan <nge@umbraco.dk>
This commit is contained in:
Nikolaj Geisle
2022-06-21 08:09:38 +02:00
committed by GitHub
parent 29961d40a3
commit 7aeb400fce
599 changed files with 87303 additions and 86123 deletions

View File

@@ -20,7 +20,6 @@ using Umbraco.Cms.Core.DependencyInjection;
using Umbraco.Cms.Core.Logging;
using Umbraco.Cms.Core.Runtime;
using Umbraco.Cms.Core.Services;
using Umbraco.Cms.Core.Services.Implement;
using Umbraco.Cms.Core.Sync;
using Umbraco.Cms.Core.WebAssets;
using Umbraco.Cms.Infrastructure.Examine;
@@ -30,136 +29,145 @@ using Umbraco.Cms.Tests.Common.TestHelpers.Stubs;
using Umbraco.Cms.Tests.Integration.Implementations;
using Umbraco.Extensions;
namespace Umbraco.Cms.Tests.Integration.DependencyInjection
namespace Umbraco.Cms.Tests.Integration.DependencyInjection;
/// <summary>
/// This is used to replace certain services that are normally registered from our Core / Infrastructure that
/// we do not want active within integration tests
/// </summary>
public static class UmbracoBuilderExtensions
{
/// <summary>
/// This is used to replace certain services that are normally registered from our Core / Infrastructure that
/// we do not want active within integration tests
/// Uses/Replaces services with testing services
/// </summary>
public static class UmbracoBuilderExtensions
public static IUmbracoBuilder AddTestServices(this IUmbracoBuilder builder, TestHelper testHelper)
{
/// <summary>
/// Uses/Replaces services with testing services
/// </summary>
public static IUmbracoBuilder AddTestServices(this IUmbracoBuilder builder, TestHelper testHelper)
{
builder.Services.AddUnique(AppCaches.NoCache);
builder.Services.AddUnique(Mock.Of<IUmbracoBootPermissionChecker>());
builder.Services.AddUnique(testHelper.MainDom);
builder.Services.AddUnique(AppCaches.NoCache);
builder.Services.AddUnique(Mock.Of<IUmbracoBootPermissionChecker>());
builder.Services.AddUnique(testHelper.MainDom);
builder.Services.AddUnique<ExamineIndexRebuilder, TestBackgroundIndexRebuilder>();
builder.Services.AddUnique(factory => Mock.Of<IRuntimeMinifier>());
builder.Services.AddUnique<ExamineIndexRebuilder, TestBackgroundIndexRebuilder>();
builder.Services.AddUnique(factory => Mock.Of<IRuntimeMinifier>());
// we don't want persisted nucache files in tests
builder.Services.AddTransient(factory => new PublishedSnapshotServiceOptions { IgnoreLocalDb = true });
// we don't want persisted nucache files in tests
builder.Services.AddTransient(factory => new PublishedSnapshotServiceOptions { IgnoreLocalDb = true });
#if IS_WINDOWS
// ensure all lucene indexes are using RAM directory (no file system)
builder.Services.AddUnique<IDirectoryFactory, LuceneRAMDirectoryFactory>();
// ensure all lucene indexes are using RAM directory (no file system)
builder.Services.AddUnique<IDirectoryFactory, LuceneRAMDirectoryFactory>();
#endif
// replace this service so that it can lookup the correct file locations
builder.Services.AddUnique(GetLocalizedTextService);
// replace this service so that it can lookup the correct file locations
builder.Services.AddUnique(GetLocalizedTextService);
builder.Services.AddUnique<IServerMessenger, NoopServerMessenger>();
builder.Services.AddUnique<IProfiler, TestProfiler>();
builder.Services.AddUnique<IServerMessenger, NoopServerMessenger>();
builder.Services.AddUnique<IProfiler, TestProfiler>();
return builder;
}
return builder;
}
/// <summary>
/// Used to register a replacement for <see cref="ILocalizedTextService"/> where the file sources are the ones within the netcore project so
/// we don't need to copy files
/// </summary>
private static ILocalizedTextService GetLocalizedTextService(IServiceProvider factory)
{
IOptions<GlobalSettings> globalSettings = factory.GetRequiredService<IOptions<GlobalSettings>>();
ILoggerFactory loggerFactory = factory.GetRequiredService<ILoggerFactory>();
AppCaches appCaches = factory.GetRequiredService<AppCaches>();
/// <summary>
/// Used to register a replacement for <see cref="ILocalizedTextService" /> where the file sources are the ones within
/// the netcore project so
/// we don't need to copy files
/// </summary>
private static ILocalizedTextService GetLocalizedTextService(IServiceProvider factory)
{
var globalSettings = factory.GetRequiredService<IOptions<GlobalSettings>>();
var loggerFactory = factory.GetRequiredService<ILoggerFactory>();
var appCaches = factory.GetRequiredService<AppCaches>();
var localizedTextService = new LocalizedTextService(
new Lazy<LocalizedTextServiceFileSources>(() =>
{
// get the src folder
var root = TestContext.CurrentContext.TestDirectory.Split("tests")[0];
var srcFolder = Path.Combine(root, "src");
var localizedTextService = new LocalizedTextService(
new Lazy<LocalizedTextServiceFileSources>(() =>
{
// get the src folder
var root = TestContext.CurrentContext.TestDirectory.Split("tests")[0];
var srcFolder = Path.Combine(root, "src");
var currFolder = new DirectoryInfo(srcFolder);
var currFolder = new DirectoryInfo(srcFolder);
DirectoryInfo uiProject = currFolder.GetDirectories("Umbraco.Web.UI", SearchOption.TopDirectoryOnly).First();
var mainLangFolder = new DirectoryInfo(Path.Combine(uiProject.FullName, globalSettings.Value.UmbracoPath.TrimStart("~/"), "config", "lang"));
var uiProject = currFolder.GetDirectories("Umbraco.Web.UI", SearchOption.TopDirectoryOnly).First();
var mainLangFolder = new DirectoryInfo(Path.Combine(uiProject.FullName, globalSettings.Value.UmbracoPath.TrimStart("~/"), "config", "lang"));
return new LocalizedTextServiceFileSources(
loggerFactory.CreateLogger<LocalizedTextServiceFileSources>(),
appCaches,
mainLangFolder,
Array.Empty<LocalizedTextServiceSupplementaryFileSource>(),
return new LocalizedTextServiceFileSources(
loggerFactory.CreateLogger<LocalizedTextServiceFileSources>(),
appCaches,
mainLangFolder,
Array.Empty<LocalizedTextServiceSupplementaryFileSource>(),
new EmbeddedFileProvider(typeof(IAssemblyProvider).Assembly, "Umbraco.Cms.Core.EmbeddedResources.Lang").GetDirectoryContents(string.Empty));
}),
loggerFactory.CreateLogger<LocalizedTextService>());
}),
loggerFactory.CreateLogger<LocalizedTextService>());
return localizedTextService;
return localizedTextService;
}
// replace the default so there is no background index rebuilder
private class TestBackgroundIndexRebuilder : ExamineIndexRebuilder
{
public TestBackgroundIndexRebuilder(
IMainDom mainDom,
IRuntimeState runtimeState,
ILogger<ExamineIndexRebuilder> logger,
IExamineManager examineManager,
IEnumerable<IIndexPopulator> populators,
IBackgroundTaskQueue backgroundTaskQueue)
: base(
mainDom,
runtimeState,
logger,
examineManager,
populators,
backgroundTaskQueue)
{
}
// replace the default so there is no background index rebuilder
private class TestBackgroundIndexRebuilder : ExamineIndexRebuilder
public override void RebuildIndex(string indexName, TimeSpan? delay = null, bool useBackgroundThread = true)
{
public TestBackgroundIndexRebuilder(IMainDom mainDom, IRuntimeState runtimeState, ILogger<ExamineIndexRebuilder> logger, IExamineManager examineManager, IEnumerable<IIndexPopulator> populators, IBackgroundTaskQueue backgroundTaskQueue) : base(mainDom, runtimeState, logger, examineManager, populators, backgroundTaskQueue)
{
}
public override void RebuildIndex(string indexName, TimeSpan? delay = null, bool useBackgroundThread = true)
{
// noop
}
public override void RebuildIndexes(bool onlyEmptyIndexes, TimeSpan? delay = null, bool useBackgroundThread = true)
{
// noop
}
// noop
}
private class NoopServerMessenger : IServerMessenger
public override void RebuildIndexes(bool onlyEmptyIndexes, TimeSpan? delay = null, bool useBackgroundThread = true)
{
public NoopServerMessenger()
{
}
public void QueueRefresh<TPayload>(ICacheRefresher refresher, TPayload[] payload)
{
}
public void QueueRefresh<T>(ICacheRefresher refresher, Func<T, int> getNumericId, params T[] instances)
{
}
public void QueueRefresh<T>(ICacheRefresher refresher, Func<T, Guid> getGuidId, params T[] instances)
{
}
public void QueueRemove<T>(ICacheRefresher refresher, Func<T, int> getNumericId, params T[] instances)
{
}
public void QueueRemove(ICacheRefresher refresher, params int[] numericIds)
{
}
public void QueueRefresh(ICacheRefresher refresher, params int[] numericIds)
{
}
public void QueueRefresh(ICacheRefresher refresher, params Guid[] guidIds)
{
}
public void QueueRefreshAll(ICacheRefresher refresher)
{
}
public void Sync() { }
public void SendMessages() { }
// noop
}
}
private class NoopServerMessenger : IServerMessenger
{
public void QueueRefresh<TPayload>(ICacheRefresher refresher, TPayload[] payload)
{
}
public void QueueRefresh<T>(ICacheRefresher refresher, Func<T, int> getNumericId, params T[] instances)
{
}
public void QueueRefresh<T>(ICacheRefresher refresher, Func<T, Guid> getGuidId, params T[] instances)
{
}
public void QueueRemove<T>(ICacheRefresher refresher, Func<T, int> getNumericId, params T[] instances)
{
}
public void QueueRemove(ICacheRefresher refresher, params int[] numericIds)
{
}
public void QueueRefresh(ICacheRefresher refresher, params int[] numericIds)
{
}
public void QueueRefresh(ICacheRefresher refresher, params Guid[] guidIds)
{
}
public void QueueRefreshAll(ICacheRefresher refresher)
{
}
public void Sync() { }
public void SendMessages() { }
}
}