Add unit tests for CookieNames class functionality

Added a new `CookieNamesTests` class to validate methods in the
`CookieNames` class, including scenarios for generating and
extracting cookie names and keys. Tests cover valid, invalid,
and unrelated cookie names, as well as round-trip validation
of `GetEnvelopeReceiverCookieName` and `GetEnvelopeReceiverKeyOrDefault`.

Updated `DigitalData.Auth.Tests.csproj` to include a project
reference to `DigitalData.Auth.Claims` for testing purposes.
This commit is contained in:
2026-05-29 09:50:24 +02:00
parent 2551de233f
commit f455241af1
2 changed files with 121 additions and 0 deletions

View File

@@ -0,0 +1,120 @@
using DigitalData.Auth.Claims;
namespace DigitalData.Auth.Tests.Claims;
[TestFixture]
public class CookieNamesTests
{
private const string DefaultCookieName = "AuthToken";
private const string Key = "NTE3YmI5YzUtNjA4Mi00ZTYxLWFhYTUtOTg0NjM4";
[Test]
public void GetEnvelopeReceiverCookieName_ShouldReturnCorrectFormat()
{
// Arrange
var expected = $"{DefaultCookieName}SignFLOWReceiver.{Key}";
// Act
var result = CookieNames.GetEnvelopeReceiverCookieName(DefaultCookieName, Key);
// Assert
Assert.That(result, Is.EqualTo(expected));
}
[Test]
public void GetEnvelopeReceiverKeyOrDefault_ShouldReturnKey_WhenCookieNameIsValid()
{
// Arrange
var cookieName = CookieNames.GetEnvelopeReceiverCookieName(DefaultCookieName, Key);
// Act
var result = CookieNames.GetEnvelopeReceiverKeyOrDefault(cookieName, DefaultCookieName);
// Assert
Assert.That(result, Is.EqualTo(Key));
}
[Test]
public void GetEnvelopeReceiverKeyOrDefault_ShouldReturnNull_WhenCookieNameHasWrongBase()
{
// Arrange
var cookieName = CookieNames.GetEnvelopeReceiverCookieName("OtherCookie", Key);
// Act
var result = CookieNames.GetEnvelopeReceiverKeyOrDefault(cookieName, DefaultCookieName);
// Assert
Assert.That(result, Is.Null);
}
[Test]
public void GetEnvelopeReceiverKeyOrDefault_ShouldReturnNull_WhenCookieNameIsUnrelated()
{
// Act
var result = CookieNames.GetEnvelopeReceiverKeyOrDefault("SomeOtherCookie", DefaultCookieName);
// Assert
Assert.That(result, Is.Null);
}
[Test]
public void TryGetEnvelopeReceiverKey_ShouldReturnTrueAndKey_WhenCookieNameIsValid()
{
// Arrange
var cookieName = CookieNames.GetEnvelopeReceiverCookieName(DefaultCookieName, Key);
// Act
var success = CookieNames.TryGetEnvelopeReceiverKey(cookieName, DefaultCookieName, out var key);
// Assert
Assert.Multiple(() =>
{
Assert.That(success, Is.True);
Assert.That(key, Is.EqualTo(Key));
});
}
[Test]
public void TryGetEnvelopeReceiverKey_ShouldReturnFalse_WhenCookieNameHasWrongBase()
{
// Arrange
var cookieName = CookieNames.GetEnvelopeReceiverCookieName("OtherCookie", Key);
// Act
var success = CookieNames.TryGetEnvelopeReceiverKey(cookieName, DefaultCookieName, out var key);
// Assert
Assert.Multiple(() =>
{
Assert.That(success, Is.False);
Assert.That(key, Is.Null);
});
}
[Test]
public void TryGetEnvelopeReceiverKey_ShouldReturnFalse_WhenCookieNameIsUnrelated()
{
// Act
var success = CookieNames.TryGetEnvelopeReceiverKey("SomeOtherCookie", DefaultCookieName, out var key);
// Assert
Assert.Multiple(() =>
{
Assert.That(success, Is.False);
Assert.That(key, Is.Null);
});
}
[Test]
public void GetAndGetOrDefault_ShouldBeInverse_RoundTrip()
{
// Arrange
var cookieName = CookieNames.GetEnvelopeReceiverCookieName(DefaultCookieName, Key);
// Act
var extractedKey = CookieNames.GetEnvelopeReceiverKeyOrDefault(cookieName, DefaultCookieName);
// Assert
Assert.That(extractedKey, Is.EqualTo(Key));
}
}