using SGU.AuthBroker.Core.Identity; using Xunit; namespace SGU.AuthBroker.Core.Tests; public sealed class UserIdentityClassifierTests { [Theory] [InlineData("DO123456", "DO123456", InstitutionalRole.Professor)] [InlineData("al000001", "AL000001", InstitutionalRole.Student)] [InlineData("LCI\\AD654321", "AD654321", InstitutionalRole.Administrative)] [InlineData("do123456@lci.lasalle.mx", "DO123456", InstitutionalRole.Professor)] public void MapsPrefixesToExpectedRoles(string input, string expectedUserName, InstitutionalRole expectedRole) { Assert.True(UserIdentityClassifier.TryParse(input, out UserIdentity? identity)); Assert.NotNull(identity); Assert.Equal(expectedUserName, identity.UserName); Assert.Equal(expectedRole, identity.Role); } [Theory] [InlineData("")] [InlineData("XX123456")] [InlineData("DO12345")] [InlineData("AL1234567")] [InlineData("AD12A456")] public void RejectsUnknownOrMalformedUserNames(string input) { Assert.False(UserIdentityClassifier.TryParse(input, out _)); } }