public static Mock<SignInManager<ApplicationUser>> CreateSignInManagerMock(IMock<UserManager<ApplicationUser>> userManagerMock = null)
{
var contextAccessor = new Mock<IHttpContextAccessor>();
contextAccessor.Setup(mock => mock.HttpContext).Returns(Mock.Of<HttpContext>);
return new Mock<SignInManager<ApplicationUser>>(
userManagerMock == null ?
CreateUserManagerMock().Object :
userManagerMock.Object,
contextAccessor.Object, Mock.Of<IUserClaimsPrincipalFactory<ApplicationUser>>(), null, null);
}