Fix accountcontroller signin unit test
This commit is contained in:
parent
820f8bd4b9
commit
eb4396e659
@ -9,7 +9,7 @@ namespace Microsoft.eShopOnContainers.WebMVC.Controllers
|
|||||||
{
|
{
|
||||||
[Authorize]
|
[Authorize]
|
||||||
public class AccountController : Controller
|
public class AccountController : Controller
|
||||||
{
|
{
|
||||||
[Authorize]
|
[Authorize]
|
||||||
public async Task<IActionResult> SignIn(string returnUrl)
|
public async Task<IActionResult> SignIn(string returnUrl)
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Authentication;
|
||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using Microsoft.AspNetCore.Http.Authentication;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.eShopOnContainers.WebMVC.Controllers;
|
using Microsoft.eShopOnContainers.WebMVC.Controllers;
|
||||||
using Microsoft.eShopOnContainers.WebMVC.Services;
|
using Microsoft.eShopOnContainers.WebMVC.Services;
|
||||||
@ -15,12 +17,10 @@ namespace UnitTest.Account
|
|||||||
{
|
{
|
||||||
public class AccountControllerTest
|
public class AccountControllerTest
|
||||||
{
|
{
|
||||||
private readonly Mock<IIdentityParser<ApplicationUser>> _identityParserMock;
|
|
||||||
private readonly Mock<HttpContext> _httpContextMock;
|
private readonly Mock<HttpContext> _httpContextMock;
|
||||||
|
|
||||||
public AccountControllerTest()
|
public AccountControllerTest()
|
||||||
{
|
{
|
||||||
_identityParserMock = new Mock<IIdentityParser<ApplicationUser>>();
|
|
||||||
_httpContextMock = new Mock<HttpContext>();
|
_httpContextMock = new Mock<HttpContext>();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,20 +29,23 @@ namespace UnitTest.Account
|
|||||||
{
|
{
|
||||||
//Arrange
|
//Arrange
|
||||||
var fakeCP = GenerateFakeClaimsIdentity();
|
var fakeCP = GenerateFakeClaimsIdentity();
|
||||||
|
var mockAuth = new Mock<AuthenticationManager>();
|
||||||
|
|
||||||
_httpContextMock.Setup(x => x.User)
|
_httpContextMock.Setup(x => x.User)
|
||||||
.Returns(new ClaimsPrincipal(fakeCP));
|
.Returns(new ClaimsPrincipal(fakeCP));
|
||||||
|
|
||||||
|
_httpContextMock.Setup(c => c.Authentication)
|
||||||
|
.Returns(mockAuth.Object);
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
var accountController = new AccountController(_identityParserMock.Object);
|
var accountController = new AccountController();
|
||||||
accountController.ControllerContext.HttpContext = _httpContextMock.Object;
|
accountController.ControllerContext.HttpContext = _httpContextMock.Object;
|
||||||
var actionResult = accountController.SignIn("");
|
var actionResult = accountController.SignIn("").Result;
|
||||||
|
|
||||||
//Assert
|
//Assert
|
||||||
var redirectResult = Assert.IsType<RedirectToActionResult>(actionResult);
|
var redirectResult = Assert.IsType<RedirectToActionResult>(actionResult);
|
||||||
Assert.Equal(redirectResult.ActionName, "Index");
|
Assert.Equal(redirectResult.ActionName, "Index");
|
||||||
Assert.Equal(redirectResult.ControllerName, "Catalog");
|
Assert.Equal(redirectResult.ControllerName, "Catalog");
|
||||||
Assert.Equal(accountController.ViewData["access_token"], "fakeToken");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private ClaimsIdentity GenerateFakeClaimsIdentity()
|
private ClaimsIdentity GenerateFakeClaimsIdentity()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user