Archiv der Kategorie: Visual Studio 2013 Update 4

UnitTest – How to Mock „User.Identity.GetUserId()“

ILSpy shows for GetUserId():

Public static string GetUserId(this IIdentity identity)
{
if (identity == null)
{
throw new ArgumentNullException(„identity“);
}
ClaimsIdentity claimsIdentity = identity as ClaimsIdentity;
if (claimsIdentity != null)
{
return claimsIdentity.FindFirstValue(http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier);
}
return null;
}

So you need to mock the Extension Method „GetUserId()“ a claim based User-Moq-Object:

var identity = new GenericIdentity(„dominik.ernst@pentasys.de“);
identity.AddClaim(new Claim(„http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier“, „1“));
var principal = new GenericPrincipal(identity, new[] { „user“ });
context.Setup(s => s.User).Returns(principal);

var controller = new YOURController();
controller.ControllerContext = new ControllerContext(context.Object, new RouteData(), controller);