Files
Umbraco-CMS/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Runtime/DefaultMainDomKeyGeneratorTests.cs
Paul Johnson 860c8e8ae2 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
2022-02-24 10:17:34 +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);
}
}
}