Files
Umbraco-CMS/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Runtime/DefaultMainDomKeyGeneratorTests.cs
Paul Johnson 83204edbd4 V10/feature/filesystem maindomlock (#12049)
* 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
2022-02-25 12:06:30 +00:00

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);
}
}
}