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:
120
DigitalData.Auth.Tests/Claims/CookieNamesTests.cs
Normal file
120
DigitalData.Auth.Tests/Claims/CookieNamesTests.cs
Normal 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));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -25,6 +25,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\DigitalData.Auth.Claims\DigitalData.Auth.Claims.csproj" />
|
||||||
<ProjectReference Include="..\DigitalData.Auth.Client\DigitalData.Auth.Client.csproj" />
|
<ProjectReference Include="..\DigitalData.Auth.Client\DigitalData.Auth.Client.csproj" />
|
||||||
<ProjectReference Include="..\src\DigitalData.Auth.API\DigitalData.Auth.API.csproj" />
|
<ProjectReference Include="..\src\DigitalData.Auth.API\DigitalData.Auth.API.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|||||||
Reference in New Issue
Block a user