Template
60 lines
2.9 KiB
C#
60 lines
2.9 KiB
C#
using Moq;
|
|
using Strata.CoreLib.Claims;
|
|
using Strata.FeatureFlags.Client;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Security.Claims;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Strata.ContinuousImprovement.Biz.Test.Unit.Utilities
|
|
{
|
|
public static class TestUtilities
|
|
{
|
|
public const string UserGuid = "eb7e4993-c65a-493a-9614-986a55dd0744";
|
|
public const string DbGuid = "54409f55-5ddf-4748-8222-9ccfb04fb4f5";
|
|
public const string ClientDbGuid = "1742934B-C508-402B-B8B5-D18C506474CB";
|
|
public const string Username = "a";
|
|
public const string Key = UserGuid + Username;
|
|
public const string DbVersion = "202133";
|
|
|
|
public static IClaimsPrincipalAccessor GetClaimsPrincipalAccessor(string userGuid = null, string userName = null,
|
|
bool isSdtEmployee = true, bool isClientDatabase = false, bool isEmptyDatabase = false, int strataId = 0)
|
|
{
|
|
var dbGuid = DbGuid;
|
|
if (isClientDatabase) { dbGuid = ClientDbGuid; }
|
|
if (isEmptyDatabase) { dbGuid = Guid.Empty.ToString(); }
|
|
|
|
var claims = new List<Claim>
|
|
{
|
|
new Claim(ClaimTypes.Name, "Name"),
|
|
new Claim(StrataClaims.UserGuid, userGuid ?? UserGuid),
|
|
new Claim(StrataClaims.Username, userName ?? Username),
|
|
new Claim("given_name", "Firstname"),
|
|
new Claim("family_name", "Lastname"),
|
|
new Claim(StrataClaims.FirstName, "Firstname"),
|
|
new Claim(StrataClaims.LastName, "Lastname"),
|
|
new Claim(StrataClaims.DatabaseVersion, DbVersion),
|
|
new Claim("strata_id", strataId.ToString()),
|
|
new Claim(StrataClaims.DatabaseGuid, dbGuid),
|
|
new Claim(StrataClaims.IsSdtEmployee, isSdtEmployee.ToString())
|
|
};
|
|
var claimIdentity = new ClaimsIdentity(claims, "mock");
|
|
var claimsPrincipal = new ClaimsPrincipal(new[] { claimIdentity });
|
|
var claimsPrincipalAccessorMock = new Mock<IClaimsPrincipalAccessor>();
|
|
claimsPrincipalAccessorMock.Setup(s => s.GetCurrentClaimsPrincipal()).Returns(claimsPrincipal);
|
|
|
|
return claimsPrincipalAccessorMock.Object;
|
|
}
|
|
|
|
internal static IFeatureFlagServiceClient GetFeatureFlagServiceClient(string featureFlag, bool isOn = true)
|
|
{
|
|
var featureFlagServiceClient = Mock.Of<IFeatureFlagServiceClient>();
|
|
Mock.Get(featureFlagServiceClient)
|
|
.Setup(s => s.IsEnabledAsync(It.IsAny<string>(), It.IsAny<Guid>(), It.IsAny<bool>(), It.IsAny<bool>(), It.IsAny<CancellationToken>()))
|
|
.Returns<string, Guid, bool, bool, CancellationToken>((flag, dbGuid, defaultValue, returnDefaultValue, token) => Task.FromResult(flag == featureFlag && dbGuid.ToString() == DbGuid ? isOn : !isOn));
|
|
return featureFlagServiceClient;
|
|
}
|
|
}
|
|
}
|