eShopOnContainers/test/Services/UnitTest/Account/AccountControllerTest.cs

56 lines
1.8 KiB
C#
Raw Normal View History

2017-03-05 23:19:36 +01:00
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.eShopOnContainers.WebMVC.Controllers;
using Microsoft.eShopOnContainers.WebMVC.Services;
using Microsoft.eShopOnContainers.WebMVC.ViewModels;
using Moq;
using System;
using System.Collections.Generic;
using System.Security.Claims;
using System.Text;
using System.Threading.Tasks;
using Xunit;
namespace UnitTest.Account
{
public class AccountControllerTest
{
private readonly Mock<IIdentityParser<ApplicationUser>> _identityParserMock;
private readonly Mock<HttpContext> _httpContextMock;
public AccountControllerTest()
{
_identityParserMock = new Mock<IIdentityParser<ApplicationUser>>();
_httpContextMock = new Mock<HttpContext>();
}
[Fact]
public void Signin_with_token_success()
{
//Arrange
var fakeCP = GenerateFakeClaimsIdentity();
_httpContextMock.Setup(x => x.User)
.Returns(new ClaimsPrincipal(fakeCP));
//Act
var accountController = new AccountController(_identityParserMock.Object);
accountController.ControllerContext.HttpContext = _httpContextMock.Object;
var actionResult = accountController.SignIn("");
//Assert
2017-03-06 11:31:02 +01:00
var redirectResult = Assert.IsType<RedirectToActionResult>(actionResult);
Assert.Equal(redirectResult.ActionName, "Index");
Assert.Equal(redirectResult.ControllerName, "Catalog");
2017-03-05 23:19:36 +01:00
Assert.Equal(accountController.ViewData["access_token"], "fakeToken");
}
private ClaimsIdentity GenerateFakeClaimsIdentity()
{
var ci = new ClaimsIdentity();
ci.AddClaim(new Claim("access_token", "fakeToken"));
return ci;
}
}
}