using Tau.Acuvim.Portal.Services; namespace Tau.Acuvim.Portal.Tests; public class CustomerTokenTests { [Fact] public void GenerateToken_Is64HexCharsLowercase() { var token = CustomerService.GenerateToken(); Assert.Equal(64, token.Length); Assert.Matches("^[0-9a-f]{64}$", token); } [Fact] public void GenerateToken_IsUniqueAcrossManyCalls() { var tokens = Enumerable.Range(0, 1000).Select(_ => CustomerService.GenerateToken()).ToHashSet(); Assert.Equal(1000, tokens.Count); } [Fact] public void HashToken_IsDeterministic() { var token = "abcd1234"; Assert.Equal(CustomerService.HashToken(token), CustomerService.HashToken(token)); } [Fact] public void HashToken_DiffersForDifferentInputs() { Assert.NotEqual(CustomerService.HashToken("abc"), CustomerService.HashToken("abd")); } [Fact] public void HashToken_Is64HexCharsLowercase() { var hash = CustomerService.HashToken("anything"); Assert.Equal(64, hash.Length); Assert.Matches("^[0-9a-f]{64}$", hash); } }