* Filesystem based MainDomLock & extract interface for MainDomKey generation (#12037)
* Extract MainDomKey generation to its own class to ease customization.
Also add discriminator config value to GlobalSettings for advanced users.
Prevents a mandatory custom implementation, should be good enough for
the vast majority of use cases.
* Prevent duplicate runs of ScheduledPublishing during slot swap.
* Add filesystem based MainDomLock
(cherry picked from commit 860c8e8ae2)
# Conflicts:
# src/Umbraco.Infrastructure/Runtime/SqlMainDomLock.cs
* Remove obsolete constructors from ScheduledPublishing & SqlMainDomLock
* FileSystemMainDomLock promoted to default fallback for all platforms.
* Various fixes & improvements
48 lines
1.6 KiB
C#
48 lines
1.6 KiB
C#
using AutoFixture.NUnit3;
|
|
using Microsoft.Extensions.Options;
|
|
using NUnit.Framework;
|
|
using Umbraco.Cms.Core.Configuration.Models;
|
|
using Umbraco.Cms.Core.Hosting;
|
|
using Umbraco.Cms.Infrastructure.Runtime;
|
|
using Umbraco.Cms.Tests.UnitTests.AutoFixture;
|
|
|
|
namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Runtime
|
|
{
|
|
[TestFixture]
|
|
internal class DefaultMainDomKeyGeneratorTests
|
|
{
|
|
[Test]
|
|
[AutoMoqData]
|
|
public void GenerateKey_WithConfiguredDiscriminatorValue_AltersHash(
|
|
[Frozen] IHostingEnvironment hostingEnvironment,
|
|
[Frozen] GlobalSettings globalSettings,
|
|
[Frozen] IOptionsMonitor<GlobalSettings> globalSettingsMonitor,
|
|
DefaultMainDomKeyGenerator sut,
|
|
string aDiscriminator)
|
|
{
|
|
var withoutDiscriminator = sut.GenerateKey();
|
|
globalSettings.MainDomKeyDiscriminator = aDiscriminator;
|
|
var withDiscriminator = sut.GenerateKey();
|
|
|
|
Assert.AreNotEqual(withoutDiscriminator, withDiscriminator);
|
|
}
|
|
|
|
[Test]
|
|
[AutoMoqData]
|
|
public void GenerateKey_WithUnchangedDiscriminatorValue_ReturnsSameValue(
|
|
[Frozen] IHostingEnvironment hostingEnvironment,
|
|
[Frozen] GlobalSettings globalSettings,
|
|
[Frozen] IOptionsMonitor<GlobalSettings> globalSettingsMonitor,
|
|
DefaultMainDomKeyGenerator sut,
|
|
string aDiscriminator)
|
|
{
|
|
globalSettings.MainDomKeyDiscriminator = aDiscriminator;
|
|
|
|
var a = sut.GenerateKey();
|
|
var b = sut.GenerateKey();
|
|
|
|
Assert.AreEqual(a, b);
|
|
}
|
|
}
|
|
}
|