Backend/e-suite.API/eSuite.API.UnitTests/Controllers/AccountControllerUnitTests/RefreshTokenUnitTests.cs
2026-01-20 21:50:10 +00:00

43 lines
1.2 KiB
C#

using e_suite.API.Common.models;
using eSuite.Core.Miscellaneous;
using Microsoft.AspNetCore.Http;
using Moq;
using NUnit.Framework;
namespace eSuite.API.UnitTests.Controllers.AccountControllerUnitTests;
[TestFixture]
public class RefreshTokenUnitTests : AccountControllerTestBase
{
[SetUp]
public override async Task Setup()
{
await base.Setup();
}
[Test]
public async Task RefreshToken_WhenCalledGeneratesNewToken()
{
//Arrange
var userId = 99;
var email = "email@mail.test";
var displayName = "Testy McTester";
AddAuthorisedUserToController(userId, email, displayName);
var loginResponse = new LoginResponse
{
Result = LoginResult.Success,
Token = "Json Web Toke goes here"
};
_userManagerMock.Setup(x => x.RefreshToken(It.IsAny<GeneralIdRef>(), It.IsAny<CancellationToken>()))
.ReturnsAsync(() => loginResponse);
//Act
var response = await _accountController.RefreshToken(CancellationToken.None);
//Assert
_cookieManagerMock.Verify( x => x.CreateSessionCookie(It.IsAny<HttpResponse>(), loginResponse), Times.Once);
}
}