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 GetEnvelopeReceiverCookieName_WithKeyOnly_ShouldUseDefaultCookieName() { // Arrange var expected = $"{DefaultCookieName}SignFLOWReceiver.{Key}"; // Act var result = CookieNames.GetEnvelopeReceiverCookieName(Key); // Assert Assert.That(result, Is.EqualTo(expected)); } [Test] public void GetEnvelopeKeyOrDefault_ShouldReturnKey_WhenCookieNameIsValid() { // Arrange var cookieName = CookieNames.GetEnvelopeReceiverCookieName(DefaultCookieName, Key); // Act var result = CookieNames.GetEnvelopeKeyOrDefault(cookieName, DefaultCookieName); // Assert Assert.That(result, Is.EqualTo(Key)); } [Test] public void GetEnvelopeKeyOrDefault_WithDefaultParam_ShouldReturnKey_WhenCookieUsesDefaultBase() { // Arrange var cookieName = CookieNames.GetEnvelopeReceiverCookieName(Key); // uses "AuthToken" base // Act var result = CookieNames.GetEnvelopeKeyOrDefault(cookieName); // defaultCookieName = "AuthToken" // Assert Assert.That(result, Is.EqualTo(Key)); } [Test] public void GetEnvelopeKeyOrDefault_ShouldReturnNull_WhenCookieNameHasWrongBase() { // Arrange var cookieName = CookieNames.GetEnvelopeReceiverCookieName("OtherCookie", Key); // Act var result = CookieNames.GetEnvelopeKeyOrDefault(cookieName, DefaultCookieName); // Assert Assert.That(result, Is.Null); } [Test] public void GetEnvelopeKeyOrDefault_ShouldReturnNull_WhenCookieNameIsUnrelated() { // Act var result = CookieNames.GetEnvelopeKeyOrDefault("SomeOtherCookie", DefaultCookieName); // Assert Assert.That(result, Is.Null); } [Test] public void TryGetEnvelopeKey_WithDefaultCookieName_ShouldReturnTrueAndKey_WhenCookieNameIsValid() { // Arrange var cookieName = CookieNames.GetEnvelopeReceiverCookieName(Key); // uses "AuthToken" base // Act var success = CookieNames.TryGetEnvelopeKey(cookieName, out var key); // Assert Assert.Multiple(() => { Assert.That(success, Is.True); Assert.That(key, Is.EqualTo(Key)); }); } [Test] public void TryGetEnvelopeKey_WithDefaultCookieName_ShouldReturnFalse_WhenCookieNameHasWrongBase() { // Arrange var cookieName = CookieNames.GetEnvelopeReceiverCookieName("OtherCookie", Key); // Act var success = CookieNames.TryGetEnvelopeKey(cookieName, out var key); // Assert Assert.Multiple(() => { Assert.That(success, Is.False); Assert.That(key, Is.Null); }); } [Test] public void TryGetEnvelopeKey_ShouldReturnTrueAndKey_WhenCookieNameIsValid() { // Arrange var cookieName = CookieNames.GetEnvelopeReceiverCookieName(DefaultCookieName, Key); // Act var success = CookieNames.TryGetEnvelopeKey(cookieName, DefaultCookieName, out var key); // Assert Assert.Multiple(() => { Assert.That(success, Is.True); Assert.That(key, Is.EqualTo(Key)); }); } [Test] public void TryGetEnvelopeKey_ShouldReturnFalse_WhenCookieNameHasWrongBase() { // Arrange var cookieName = CookieNames.GetEnvelopeReceiverCookieName("OtherCookie", Key); // Act var success = CookieNames.TryGetEnvelopeKey(cookieName, DefaultCookieName, out var key); // Assert Assert.Multiple(() => { Assert.That(success, Is.False); Assert.That(key, Is.Null); }); } [Test] public void TryGetEnvelopeKey_ShouldReturnFalse_WhenCookieNameIsUnrelated() { // Act var success = CookieNames.TryGetEnvelopeKey("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.GetEnvelopeKeyOrDefault(cookieName, DefaultCookieName); // Assert Assert.That(extractedKey, Is.EqualTo(Key)); } }