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:
@@ -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() { }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user