Я пытаюсь unit test мой код, который включает в себя строку:
UserLoginInfo userIdentity = UserManager.GetLogins(User.Identity.GetUserId()).FirstOrDefault();
Я просто застрял на одном бите, поскольку я не могу получить:
User.Identity.GetUserId()
чтобы вернуть значение. Я пробовал следующее в настройке моего контроллера:
var mock = new Mock<ControllerContext>();
mock.Setup(p => p.HttpContext.User.Identity.GetUserId()).Returns("string");
Но он дает ошибку "NotSupportedException был необработанным кодом пользователя". Я также пробовал следующее:
ControllerContext controllerContext = new ControllerContext();
string username = "username";
string userid = Guid.NewGuid().ToString("N"); //could be a constant
List<Claim> claims = new List<Claim>{
new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", username),
new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", userid)
};
var genericIdentity = new GenericIdentity("Andrew");
genericIdentity.AddClaims(claims);
var genericPrincipal = new GenericPrincipal(genericIdentity, new string[] { });
controllerContext.HttpContext.User = genericPrincipal;
На основе некоторого кода, который я нашел в stackoverflow, но это возвращает ту же ошибку "NotSupportedException был необработанным кодом пользователя".
Любая помощь относительно того, как я буду действовать, будет оценена по достоинству. Спасибо.