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.
121 lines
3.4 KiB
C#
121 lines
3.4 KiB
C#
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));
|
|
}
|
|
}
|