|
|
- 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
- var redirectResult = Assert.IsType<RedirectToActionResult>(actionResult);
- Assert.Equal(redirectResult.ActionName, "Index");
- Assert.Equal(redirectResult.ControllerName, "Catalog");
- Assert.Equal(accountController.ViewData["access_token"], "fakeToken");
- }
-
- private ClaimsIdentity GenerateFakeClaimsIdentity()
- {
- var ci = new ClaimsIdentity();
- ci.AddClaim(new Claim("access_token", "fakeToken"));
- return ci;
- }
- }
- }
|