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 additionalUserGroups = null) { var userGroups = new List { "Everyone" }; if (additionalUserGroups != null) { userGroups.AddRange(additionalUserGroups); } var claims = new List { 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(a => a.GetCurrentClaimsPrincipal() == principal); } } }