Async support for content finders. Improve log performance. (#12340)

This commit is contained in:
Chad
2022-05-04 07:29:15 +12:00
committed by GitHub
parent 9f4ff0a398
commit 0561d4b5a1
20 changed files with 267 additions and 108 deletions

View File

@@ -1,12 +1,13 @@
// Copyright (c) Umbraco.
// Copyright (c) Umbraco.
// See LICENSE for more details.
using System.Threading.Tasks;
using Umbraco.Cms.Core.Routing;
namespace Umbraco.Cms.Tests.Common
{
public class TestLastChanceFinder : IContentLastChanceFinder
{
public bool TryFindContent(IPublishedRequestBuilder frequest) => false;
public async Task<bool> TryFindContent(IPublishedRequestBuilder frequest) => false;
}
}

View File

@@ -47,7 +47,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing
var lookup =
new ContentFinderByUrlAlias(Mock.Of<ILogger<ContentFinderByUrlAlias>>(), Mock.Of<IPublishedValueFallback>(), VariationContextAccessor, umbracoContextAccessor);
var result = lookup.TryFindContent(frequest);
var result = await lookup.TryFindContent(frequest);
Assert.IsTrue(result);
Assert.AreEqual(frequest.PublishedContent.Id, nodeMatch);

View File

@@ -49,7 +49,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing
}
var finder = new ContentFinderByUrlAlias(Mock.Of<ILogger<ContentFinderByUrlAlias>>(), Mock.Of<IPublishedValueFallback>(), VariationContextAccessor, umbracoContextAccessor);
var result = finder.TryFindContent(request);
var result = await finder.TryFindContent(request);
if (expectedNode > 0)
{

View File

@@ -50,7 +50,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing
Mock.Of<ILogger<ContentFinderByIdPath>>(), Mock.Of<IRequestAccessor>(), umbracoContextAccessor);
var result = lookup.TryFindContent(frequest);
var result = await lookup.TryFindContent(frequest);
Assert.IsTrue(result);
Assert.AreEqual(frequest.PublishedContent.Id, nodeMatch);

View File

@@ -54,7 +54,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing
var lookup = new ContentFinderByPageIdQuery(mockRequestAccessor.Object, umbracoContextAccessor);
var result = lookup.TryFindContent(frequest);
var result = await lookup.TryFindContent(frequest);
Assert.IsTrue(result);
Assert.AreEqual(frequest.PublishedContent.Id, nodeMatch);

View File

@@ -1,4 +1,5 @@
using System;
using System.Threading.Tasks;
using AutoFixture.NUnit3;
using Moq;
using NUnit.Framework;
@@ -24,7 +25,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing
[InlineAutoMoqData("/only/one/alias", 100111)]
[InlineAutoMoqData("/ONLY/one/Alias", 100111)]
[InlineAutoMoqData("/alias43", 100121)]
public void Lookup_By_Url_Alias (
public async Task Lookup_By_Url_Alias (
string relativeUrl,
int nodeMatch,
[Frozen] IPublishedContentCache publishedContentCache,
@@ -54,7 +55,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing
Mock.Get(variationContextAccessor).Setup(x => x.VariationContext).Returns(variationContext);
var publishedRequestBuilder = new PublishedRequestBuilder(new Uri(absoluteUrl, UriKind.Absolute), fileService);
//Act
var result = sut.TryFindContent(publishedRequestBuilder);
var result = await sut.TryFindContent(publishedRequestBuilder);
Assert.IsTrue(result);
Assert.AreEqual(publishedRequestBuilder.PublishedContent.Id, nodeMatch);

View File

@@ -72,7 +72,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing
umbracoContextAccessor,
Mock.Of<IOptionsMonitor<WebRoutingSettings>>(x=>x.CurrentValue == webRoutingSettings));
var result = lookup.TryFindContent(frequest);
var result = await lookup.TryFindContent(frequest);
IPublishedRequest request = frequest.Build();

View File

@@ -63,7 +63,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing
if (urlString == "/home/sub1")
System.Diagnostics.Debugger.Break();
var result = lookup.finder.TryFindContent(lookup.frequest);
var result = await lookup.finder.TryFindContent(lookup.frequest);
if (expectedId > 0)
{
@@ -88,7 +88,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing
Assert.IsFalse(GlobalSettings.HideTopLevelNodeFromPath);
var result = lookup.finder.TryFindContent(lookup.frequest);
var result = await lookup.finder.TryFindContent(lookup.frequest);
Assert.IsTrue(result);
Assert.AreEqual(expectedId, lookup.frequest.PublishedContent.Id);
@@ -107,7 +107,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing
var lookup = await GetContentFinder(urlString);
var result = lookup.finder.TryFindContent(lookup.frequest);
var result = await lookup.finder.TryFindContent(lookup.frequest);
Assert.IsTrue(result);
Assert.AreEqual(expectedId, lookup.frequest.PublishedContent.Id);
@@ -132,7 +132,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing
lookup.frequest.SetDomain(new DomainAndUri(new Domain(1, "mysite", -1, "en-US", false), new Uri("http://mysite/")));
var result = lookup.finder.TryFindContent(lookup.frequest);
var result = await lookup.finder.TryFindContent(lookup.frequest);
Assert.IsTrue(result);
Assert.AreEqual(expectedId, lookup.frequest.PublishedContent.Id);
@@ -158,7 +158,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing
lookup.frequest.SetDomain(new DomainAndUri(new Domain(1, "mysite/æøå", -1, "en-US", false), new Uri("http://mysite/æøå")));
var result = lookup.finder.TryFindContent(lookup.frequest);
var result = await lookup.finder.TryFindContent(lookup.frequest);
Assert.IsTrue(result);
Assert.AreEqual(expectedId, lookup.frequest.PublishedContent.Id);

View File

@@ -140,7 +140,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing
publishedRouter.FindDomain(frequest);
var lookup = new ContentFinderByUrl(Mock.Of<ILogger<ContentFinderByUrl>>(), umbracoContextAccessor);
var result = lookup.TryFindContent(frequest);
var result = await lookup.TryFindContent(frequest);
Assert.IsTrue(result);
Assert.AreEqual(expectedId, frequest.PublishedContent.Id);
}
@@ -183,7 +183,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing
Assert.AreEqual(expectedCulture, frequest.Culture);
var lookup = new ContentFinderByUrl(Mock.Of<ILogger<ContentFinderByUrl>>(), umbracoContextAccessor);
var result = lookup.TryFindContent(frequest);
var result = await lookup.TryFindContent(frequest);
Assert.IsTrue(result);
Assert.AreEqual(expectedId, frequest.PublishedContent.Id);
}

View File

@@ -304,7 +304,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing
Assert.AreEqual(expectedCulture, frequest.Culture);
var finder = new ContentFinderByUrl(Mock.Of<ILogger<ContentFinderByUrl>>(), umbracoContextAccessor);
var result = finder.TryFindContent(frequest);
var result = await finder.TryFindContent(frequest);
Assert.IsTrue(result);
Assert.AreEqual(frequest.PublishedContent.Id, expectedNode);
@@ -352,7 +352,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing
// find document
var finder = new ContentFinderByUrl(Mock.Of<ILogger<ContentFinderByUrl>>(), umbracoContextAccessor);
var result = finder.TryFindContent(frequest);
var result = await finder.TryFindContent(frequest);
// apply wildcard domain
publishedRouter.HandleWildcardDomains(frequest);
@@ -388,7 +388,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing
Assert.AreEqual(expectedCulture, frequest.Culture);
var finder = new ContentFinderByUrl(Mock.Of<ILogger<ContentFinderByUrl>>(), umbracoContextAccessor);
var result = finder.TryFindContent(frequest);
var result = await finder.TryFindContent(frequest);
Assert.IsTrue(result);
Assert.AreEqual(frequest.PublishedContent.Id, expectedNode);

View File

@@ -72,7 +72,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing
// check that it's been routed
var lookup = new ContentFinderByUrl(Mock.Of<ILogger<ContentFinderByUrl>>(), umbracoContextAccessor);
var result = lookup.TryFindContent(frequest);
var result = await lookup.TryFindContent(frequest);
Assert.IsTrue(result);
Assert.AreEqual(100111, frequest.PublishedContent.Id);