Files
2026-06-23 11:18:54 -05:00

40 lines
1.6 KiB
C#

using IdentityModel;
using Moq;
using Strata.CoreLib.Claims;
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
namespace Strata.Analytics.Test.Unit.Biz.TestData
{
internal class IClaimsPrincipalAccessorMock
{
public static IClaimsPrincipalAccessor GetClaimsPrincipalAccessor(int strataId = 5, bool isStrataUser = false, bool isAdmin = true, IEnumerable<string> additionalUserGroups = null)
{
var userGroups = new List<string> { "Everyone" };
if (additionalUserGroups != null)
{
userGroups.AddRange(additionalUserGroups);
}
var claims = new List<Claim> {
new Claim(StrataClaims.StrataId, strataId.ToString()),
new Claim(StrataClaims.IsSdtEmployee, isStrataUser.ToString()),
new Claim(StrataClaims.UserGuid, "9d1bf676-b8cc-4403-a5fc-686f33538d3b"),
new Claim(StrataClaims.FirstName, "Test"),
new Claim(StrataClaims.LastName, "User"),
new Claim(StrataClaims.Username, "testuser"),
new Claim(StrataClaims.IsAdmin, isAdmin.ToString()),
new Claim(StrataClaims.DatabaseGuid, "3ABAEFE1-A5D3-4F6E-80DD-8967B255206A"),
new Claim(StrataClaims.Timezone, "Central Standard Time")
};
claims.AddRange(userGroups.Select(userGroup => new Claim(JwtClaimTypes.Role, userGroup)));
var principal = new ClaimsPrincipal(new ClaimsIdentity(claims));
return Mock.Of<IClaimsPrincipalAccessor>(a => a.GetCurrentClaimsPrincipal() == principal);
}
}
}