tests: add mucho tests
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
namespace FiscalOS.Core.Tests.Unit;
|
||||
|
||||
public class EncryptedDataKeyTests
|
||||
{
|
||||
[Fact]
|
||||
public void From_WhenCalled_ItShouldReturnAnInstance()
|
||||
{
|
||||
var keyId = "key-id";
|
||||
var encryptedKey = "encrypted-key";
|
||||
|
||||
var encryptedDataKey = EncryptedDataKey.From(keyId, encryptedKey);
|
||||
|
||||
encryptedDataKey.KeyIdUsed.Should().Be(keyId);
|
||||
encryptedDataKey.EncryptedKey.Should().Be(encryptedKey);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void From_WhenCalledWithNullKeyId_ItShouldThrowArgumentNullException()
|
||||
{
|
||||
var encryptedKey = "encrypted-key";
|
||||
|
||||
var creatingDataKeyWithNullKeyId = () => EncryptedDataKey.From(null!, encryptedKey);
|
||||
|
||||
creatingDataKeyWithNullKeyId.Should().Throw<ArgumentNullException>();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void From_WhenCalledWithNullEncryptedKey_ItShouldThrowArgumentNullException()
|
||||
{
|
||||
var keyId = "key-id";
|
||||
|
||||
var creatingDataKeyWithNullEncryptedKey = () => EncryptedDataKey.From(keyId, null!);
|
||||
|
||||
creatingDataKeyWithNullEncryptedKey.Should().Throw<ArgumentNullException>();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
namespace FiscalOS.Core.Tests.Unit;
|
||||
|
||||
public class KeyRingEntryTests
|
||||
{
|
||||
[Fact]
|
||||
public void From_WhenCalled_ItShouldReturnAnInstance()
|
||||
{
|
||||
var keyId = "test-key-id";
|
||||
var key = "key";
|
||||
|
||||
var keyRingEntry = KeyRingEntry.From(keyId, key);
|
||||
|
||||
keyRingEntry.KeyId.Should().Be(keyId);
|
||||
keyRingEntry.Key.Should().Be(key);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void From_WhenCalledWithNullKeyId_ItShouldThrowArgumentNullException()
|
||||
{
|
||||
var key = "key";
|
||||
|
||||
var createEntryWithNullKeyId = () => KeyRingEntry.From(null!, key);
|
||||
|
||||
createEntryWithNullKeyId.Should().Throw<ArgumentNullException>();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void From_WhenCalledWithNullKey_ItShouldThrowArgumentNullException()
|
||||
{
|
||||
var keyId = "test-key-id";
|
||||
|
||||
var createEntryWithNullKey = () => KeyRingEntry.From(keyId, null!);
|
||||
|
||||
createEntryWithNullKey.Should().Throw<ArgumentNullException>();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
namespace FiscalOS.Core.Tests.Unit;
|
||||
|
||||
public class RefreshTokenTests
|
||||
{
|
||||
[Fact]
|
||||
public void From_WhenCalledWithUserId_ItShouldReturnARefreshTokenInstance()
|
||||
{
|
||||
var userId = Guid.NewGuid();
|
||||
var token = "token";
|
||||
var expiresAt = DateTime.UtcNow.AddDays(7);
|
||||
|
||||
var refreshToken = RefreshToken.From(userId, token, expiresAt);
|
||||
|
||||
refreshToken.UserId.Should().Be(userId);
|
||||
refreshToken.User.Should().BeNull();
|
||||
refreshToken.Token.Should().Be(token);
|
||||
refreshToken.ExpiresAt.Should().Be(expiresAt);
|
||||
refreshToken.Revoked.Should().BeFalse();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void From_WhenCalledWithUser_ItShouldReturnARefreshTokenInstance()
|
||||
{
|
||||
var user = User.From(
|
||||
"testuser",
|
||||
"hashedpassword",
|
||||
EncryptedDataKey.From("keyId", "encryptedKey")
|
||||
);
|
||||
|
||||
var token = "token";
|
||||
var expiresAt = DateTime.UtcNow.AddDays(7);
|
||||
|
||||
var refreshToken = RefreshToken.From(user, token, expiresAt);
|
||||
|
||||
refreshToken.UserId.Should().Be(user.Id);
|
||||
refreshToken.User.Should().Be(user);
|
||||
refreshToken.Token.Should().Be(token);
|
||||
refreshToken.ExpiresAt.Should().Be(expiresAt);
|
||||
refreshToken.Revoked.Should().BeFalse();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void From_WhenCalledWithNullUser_ItShouldThrowArgumentNullException()
|
||||
{
|
||||
var token = "token";
|
||||
var expiresAt = DateTime.UtcNow.AddDays(7);
|
||||
|
||||
var createRefreshTokenWithNullUser = () => RefreshToken.From(null!, token, expiresAt);
|
||||
|
||||
createRefreshTokenWithNullUser.Should().Throw<ArgumentNullException>();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Revoke_WhenCalled_ItShouldSetRevokedToTrue()
|
||||
{
|
||||
var refreshToken = RefreshToken.From(Guid.NewGuid(), "token", DateTime.UtcNow.AddDays(7));
|
||||
|
||||
refreshToken.Revoke();
|
||||
|
||||
refreshToken.Revoked.Should().BeTrue();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void IsExpired_WhenCalledOnExpiredToken_ItShouldReturnTrue()
|
||||
{
|
||||
var refreshToken = RefreshToken.From(Guid.NewGuid(), "token", DateTime.UtcNow.AddDays(-1));
|
||||
|
||||
var isExpired = refreshToken.IsExpired(DateTimeOffset.UtcNow);
|
||||
|
||||
isExpired.Should().BeTrue();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void IsExpired_WhenCalledOnNonExpiredToken_ItShouldReturnFalse()
|
||||
{
|
||||
var refreshToken = RefreshToken.From(Guid.NewGuid(), "token", DateTime.UtcNow.AddDays(1));
|
||||
|
||||
var isExpired = refreshToken.IsExpired(DateTimeOffset.UtcNow);
|
||||
|
||||
isExpired.Should().BeFalse();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
namespace FiscalOS.Core.Tests.Unit;
|
||||
|
||||
public class UserTests
|
||||
{
|
||||
[Fact]
|
||||
public void New_WhenCalled_ItShouldReturnNewUserInstance()
|
||||
{
|
||||
var user = User.New();
|
||||
|
||||
user.Should().NotBeNull();
|
||||
user.Username.Should().BeEmpty();
|
||||
user.HashedPassword.Should().BeEmpty();
|
||||
user.EncryptionKeyId.Should().BeEmpty();
|
||||
user.EncryptedDataKey.Should().BeEmpty();
|
||||
user.RefreshTokens.Should().BeEmpty();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void From_WhenCalledWithValidParameters_ItShouldReturnUserInstance()
|
||||
{
|
||||
var encryptedDataKey = EncryptedDataKey.From("keyId", "encryptedKey");
|
||||
var user = User.From("testuser", "hashedpassword", encryptedDataKey);
|
||||
|
||||
user.Should().NotBeNull();
|
||||
user.Username.Should().Be("testuser");
|
||||
user.HashedPassword.Should().Be("hashedpassword");
|
||||
user.EncryptionKeyId.Should().Be("keyId");
|
||||
user.EncryptedDataKey.Should().Be("encryptedKey");
|
||||
user.RefreshTokens.Should().BeEmpty();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void From_WhenCalledWithNullParameters_ItShouldThrowArgumentNullException()
|
||||
{
|
||||
var encryptedDataKey = EncryptedDataKey.From("keyId", "encryptedKey");
|
||||
|
||||
var creatingUserWithNullUsername = () => User.From(null!, "hashedpassword", encryptedDataKey);
|
||||
creatingUserWithNullUsername.Should().Throw<ArgumentNullException>();
|
||||
|
||||
var creatingUserWithNullHashedPassword = () => User.From("testuser", null!, encryptedDataKey);
|
||||
creatingUserWithNullHashedPassword.Should().Throw<ArgumentNullException>();
|
||||
|
||||
var creatingUserWithNullDataKey = () => User.From("testuser", "hashedpassword", null!);
|
||||
creatingUserWithNullDataKey.Should().Throw<ArgumentNullException>();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AddRefreshToken_WhenCalled_ItShouldAddRefreshTokenToUser()
|
||||
{
|
||||
var encryptedDataKey = EncryptedDataKey.From("keyId", "encryptedKey");
|
||||
var user = User.From("testuser", "hashedpassword", encryptedDataKey);
|
||||
var refreshToken = RefreshToken.From(user.Id, "tokenvalue", DateTimeOffset.UtcNow.AddDays(7));
|
||||
|
||||
user.AddRefreshToken(refreshToken);
|
||||
|
||||
user.RefreshTokens.Should().ContainSingle().Which.Should().Be(refreshToken);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AddRefreshToken_WhenCalledWithNull_ItShouldThrowArgumentNullException()
|
||||
{
|
||||
var user = User.New();
|
||||
|
||||
var addingNullRefreshToken = () => user.AddRefreshToken(null!);
|
||||
|
||||
addingNullRefreshToken.Should().Throw<ArgumentNullException>();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SetCreatedAt_WhenCalled_ItShouldSetCreatedAtProperty()
|
||||
{
|
||||
var user = User.New();
|
||||
var createdAt = DateTimeOffset.UtcNow;
|
||||
|
||||
user.SetCreatedAt(createdAt);
|
||||
|
||||
user.CreatedAt.Should().Be(createdAt);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SetUpdatedAt_WhenCalled_ItShouldSetUpdatedAtProperty()
|
||||
{
|
||||
var user = User.New();
|
||||
var updatedAt = DateTimeOffset.UtcNow;
|
||||
|
||||
user.SetUpdatedAt(updatedAt);
|
||||
|
||||
user.UpdatedAt.Should().Be(updatedAt);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user