From f455241af107b6071993f5385b127362782a6959 Mon Sep 17 00:00:00 2001 From: TekH Date: Fri, 29 May 2026 09:50:24 +0200 Subject: [PATCH] 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. --- .../Claims/CookieNamesTests.cs | 120 ++++++++++++++++++ .../DigitalData.Auth.Tests.csproj | 1 + 2 files changed, 121 insertions(+) create mode 100644 DigitalData.Auth.Tests/Claims/CookieNamesTests.cs diff --git a/DigitalData.Auth.Tests/Claims/CookieNamesTests.cs b/DigitalData.Auth.Tests/Claims/CookieNamesTests.cs new file mode 100644 index 0000000..1fdc012 --- /dev/null +++ b/DigitalData.Auth.Tests/Claims/CookieNamesTests.cs @@ -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)); + } +} diff --git a/DigitalData.Auth.Tests/DigitalData.Auth.Tests.csproj b/DigitalData.Auth.Tests/DigitalData.Auth.Tests.csproj index 300d19c..23e99c6 100644 --- a/DigitalData.Auth.Tests/DigitalData.Auth.Tests.csproj +++ b/DigitalData.Auth.Tests/DigitalData.Auth.Tests.csproj @@ -25,6 +25,7 @@ +