You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
2.1 KiB
43 lines
2.1 KiB
using Bit.Core.Entities; |
|
using Bit.Core.KeyManagement.Models.Data; |
|
using Bit.Core.KeyManagement.Queries; |
|
using Bit.Core.KeyManagement.Repositories; |
|
using Bit.Test.Common.AutoFixture; |
|
using Bit.Test.Common.AutoFixture.Attributes; |
|
using NSubstitute; |
|
using Xunit; |
|
|
|
namespace Bit.Core.Test.KeyManagement.Queries; |
|
|
|
[SutProviderCustomize] |
|
public class UserAccountKeysQueryTests |
|
{ |
|
[Theory, BitAutoData] |
|
public async Task V1User_Success(SutProvider<UserAccountKeysQuery> sutProvider, User user) |
|
{ |
|
var result = await sutProvider.Sut.Run(user); |
|
Assert.Equal(user.GetPublicKeyEncryptionKeyPair().PublicKey, result.PublicKeyEncryptionKeyPairData.PublicKey); |
|
Assert.Equal(user.GetPublicKeyEncryptionKeyPair().WrappedPrivateKey, result.PublicKeyEncryptionKeyPairData.WrappedPrivateKey); |
|
} |
|
|
|
[Theory, BitAutoData] |
|
public async Task V2User_Success(SutProvider<UserAccountKeysQuery> sutProvider, User user) |
|
{ |
|
user.SecurityState = "v2"; |
|
user.SecurityVersion = 2; |
|
var signatureKeyPairRepository = sutProvider.GetDependency<IUserSignatureKeyPairRepository>(); |
|
signatureKeyPairRepository.GetByUserIdAsync(user.Id).Returns(new SignatureKeyPairData(Core.KeyManagement.Enums.SignatureAlgorithm.Ed25519, "wrappedSigningKey", "verifyingKey")); |
|
var result = await sutProvider.Sut.Run(user); |
|
Assert.Equal(user.GetPublicKeyEncryptionKeyPair().PublicKey, result.PublicKeyEncryptionKeyPairData.PublicKey); |
|
Assert.Equal(user.GetPublicKeyEncryptionKeyPair().WrappedPrivateKey, result.PublicKeyEncryptionKeyPairData.WrappedPrivateKey); |
|
Assert.Equal(user.GetPublicKeyEncryptionKeyPair().SignedPublicKey, result.PublicKeyEncryptionKeyPairData.SignedPublicKey); |
|
|
|
Assert.NotNull(result.SignatureKeyPairData); |
|
Assert.Equal("wrappedSigningKey", result.SignatureKeyPairData.WrappedSigningKey); |
|
Assert.Equal("verifyingKey", result.SignatureKeyPairData.VerifyingKey); |
|
|
|
Assert.Equal(user.SecurityState, result.SecurityStateData.SecurityState); |
|
Assert.Equal(user.GetSecurityVersion(), result.SecurityStateData.SecurityVersion); |
|
} |
|
|
|
}
|
|
|