using ZB.MOM.WW.Auth.Ldap.Internal; namespace ZB.MOM.WW.Auth.Ldap.Tests; public class LdapUserNameTests { [Theory] [InlineData("jdoe")] [InlineData(" jdoe ")] [InlineData(@"NAM\jdoe")] [InlineData("jdoe@corp.test")] public void Accepting_ReducesToBareName(string input) { Assert.True(LdapUserName.TryNormalize(input, acceptDomainQualified: true, out var name)); Assert.Equal("jdoe", name); } [Theory] [InlineData(@"NAM\jdoe")] [InlineData("jdoe@corp.test")] public void Strict_RefusesQualifiedNames(string input) => Assert.False(LdapUserName.TryNormalize(input, acceptDomainQualified: false, out _)); [Fact] public void Strict_AcceptsBareName() { Assert.True(LdapUserName.TryNormalize(" jdoe ", acceptDomainQualified: false, out var name)); Assert.Equal("jdoe", name); } [Theory] [InlineData(null)] [InlineData("")] [InlineData(" ")] [InlineData("@x")] [InlineData(@"\jdoe")] [InlineData("jdoe@")] [InlineData(@"NAM\")] [InlineData(@"a\b\c")] [InlineData("a@b@c")] [InlineData(@"NAM\jdoe@corp.test")] public void Unusable_IsRefused(string? input) { Assert.False(LdapUserName.TryNormalize(input, acceptDomainQualified: true, out var name)); Assert.Equal("", name); } }