32 lines
1.1 KiB
C#
32 lines
1.1 KiB
C#
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 _));
|
|
}
|
|
}
|