|
|
|
@@ -36,8 +36,8 @@ namespace Diligent.WebAPI.Tests.Services |
|
|
|
new RefreshToken |
|
|
|
{ |
|
|
|
Id = 1, |
|
|
|
CreationDate = DateTime.UtcNow, |
|
|
|
ExpiryDate = DateTime.UtcNow.AddDays(5), |
|
|
|
CreationDate = DateTime.Now, |
|
|
|
ExpiryDate = DateTime.Now.AddDays(5), |
|
|
|
UserId = 1, |
|
|
|
Invalidated = false, |
|
|
|
JwtId = "string", |
|
|
|
@@ -46,9 +46,9 @@ namespace Diligent.WebAPI.Tests.Services |
|
|
|
}, |
|
|
|
new RefreshToken |
|
|
|
{ |
|
|
|
Id = 2, |
|
|
|
CreationDate = DateTime.UtcNow, |
|
|
|
ExpiryDate = DateTime.UtcNow.AddDays(5), |
|
|
|
Id = 4, |
|
|
|
CreationDate = DateTime.Now, |
|
|
|
ExpiryDate = DateTime.Now.AddDays(5), |
|
|
|
UserId = 2, |
|
|
|
Invalidated = false, |
|
|
|
JwtId = "string", |
|
|
|
@@ -58,8 +58,8 @@ namespace Diligent.WebAPI.Tests.Services |
|
|
|
new RefreshToken |
|
|
|
{ |
|
|
|
Id = 3, |
|
|
|
CreationDate = DateTime.UtcNow, |
|
|
|
ExpiryDate = DateTime.UtcNow.AddDays(5), |
|
|
|
CreationDate = DateTime.Now, |
|
|
|
ExpiryDate = DateTime.Now.AddDays(5), |
|
|
|
UserId = 3, |
|
|
|
Invalidated = false, |
|
|
|
JwtId = "string", |
|
|
|
@@ -131,6 +131,22 @@ namespace Diligent.WebAPI.Tests.Services |
|
|
|
EmailConfirmed = false, |
|
|
|
IsEnabled = true, |
|
|
|
AccessFailedCount = 0, |
|
|
|
SecurityStamp = "ZYA3WYFOWDEQRWYKEXVKIBPI3C5XZZNM", |
|
|
|
ConcurrencyStamp = "9f3174d6-dd77-4549-ae51-ec81d630d7ff", |
|
|
|
}, |
|
|
|
new User |
|
|
|
{ |
|
|
|
Id = 5, |
|
|
|
PasswordHash = "AQAAAAEAACcQAAAAEK8x77a+af9qKiHc6Lq2OKLmzCjqhws/qn2g4ByHwAXoDp7/3aT38M47oTPZQ1rqyg==", |
|
|
|
FirstName = "User", |
|
|
|
LastName = "Four", |
|
|
|
UserName = "user5", |
|
|
|
NormalizedUserName = "USER5", |
|
|
|
Email = "user5@dilig.net", |
|
|
|
NormalizedEmail = "USER5@DILIG.NET", |
|
|
|
EmailConfirmed = false, |
|
|
|
IsEnabled = true, |
|
|
|
AccessFailedCount = 0, |
|
|
|
SecurityStamp = "2D3XPK2P5MAKO377AWFU3T4ZFFYTSOJX", |
|
|
|
ConcurrencyStamp = "2D3XPK2P5MAKO377AWFU3T4ZFFYTSOJX", |
|
|
|
} |
|
|
|
@@ -783,5 +799,70 @@ namespace Diligent.WebAPI.Tests.Services |
|
|
|
|
|
|
|
result.Should().BeEquivalentTo(_tokens[0]); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public async Task RefreshTokenAsync_ShouldReturnError_IfValidatedTokenIsNull() |
|
|
|
{ |
|
|
|
var databaseContext = await Helpers<User>.GetDatabaseContextWithRelation(_users, _tokens); |
|
|
|
|
|
|
|
var authSettings = Options.Create(new AuthorizationSettings |
|
|
|
{ |
|
|
|
Secret = "ThIs I5 0uR S3cReT n0W!" |
|
|
|
}); |
|
|
|
var frontEndSettings = Options.Create(new FrontEndSettings |
|
|
|
{ |
|
|
|
BaseUrl = "some url" |
|
|
|
}); |
|
|
|
|
|
|
|
var service = new AuthenticationService(authSettings, frontEndSettings, _mockUserManager, databaseContext, _emailer, _logger, _httpClient, _mapper); |
|
|
|
|
|
|
|
var result = await service.RefreshTokenAsync(new RefreshTokenRequestDto |
|
|
|
{ |
|
|
|
RefreshToken = "", |
|
|
|
Token = "" |
|
|
|
}); |
|
|
|
|
|
|
|
result.Should().BeEquivalentTo(new RefreshTokenResultDto |
|
|
|
{ |
|
|
|
Error = "Invalid token" |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public async Task Expirt_RefreshTokenAsync_ShouldReturnError_IfValidatedTokenIsNull() |
|
|
|
{ |
|
|
|
_mockUserManager.FindByNameAsync(Arg.Any<string>()).Returns(_users[4]); |
|
|
|
_mockUserManager.CheckPasswordAsync(Arg.Any<User>(), Arg.Any<string>()).Returns(Task.FromResult(true)); |
|
|
|
var databaseContext = await Helpers<User>.GetDatabaseContextWithRelation(_users, _tokens); |
|
|
|
|
|
|
|
var authSettings = Options.Create(new AuthorizationSettings |
|
|
|
{ |
|
|
|
Secret = "ThIs I5 0uR S3cReT n0W!" |
|
|
|
}); |
|
|
|
|
|
|
|
var frontEndSettings = Options.Create(new FrontEndSettings |
|
|
|
{ |
|
|
|
BaseUrl = "some url" |
|
|
|
}); |
|
|
|
|
|
|
|
var service = new AuthenticationService(authSettings, frontEndSettings, _mockUserManager, databaseContext, _emailer, _logger, _httpClient, _mapper); |
|
|
|
|
|
|
|
var result1 = await service.Authenticate(new Contracts.DTOs.Auth.AuthenticateRequestDto |
|
|
|
{ |
|
|
|
Username = _users[4].UserName, |
|
|
|
Password = "Nekasifra123!" |
|
|
|
}); |
|
|
|
|
|
|
|
var result = await service.RefreshTokenAsync(new RefreshTokenRequestDto |
|
|
|
{ |
|
|
|
RefreshToken = result1.Data.RefreshToken, |
|
|
|
Token = result1.Data.Token |
|
|
|
}); |
|
|
|
|
|
|
|
result.Should().BeEquivalentTo(new RefreshTokenResultDto |
|
|
|
{ |
|
|
|
Error = "This refresh token has expired" |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
} |