Bitwarden-app-android-iphon.../test/App.Test/CryptoServiceTests.cs

41 lines
1.3 KiB
C#
Raw Normal View History

2016-05-02 08:52:09 +02:00
using System;
using Bit.App.Abstractions;
using Bit.App.Services;
using NSubstitute;
using Xunit;
using Plugin.Settings.Abstractions;
2016-05-02 08:52:09 +02:00
namespace Bit.App.Test
{
public class CryptoServiceTests
{
[Fact]
public void EncryptDecrypt()
{
var value = "hi";
Assert.Equal(EncryptDecryptValue(value), value);
}
[Fact]
public void EncryptDecryptLongValue()
{
var value = "This is a really long value that should encrypt and decrypt just fine too.";
Assert.Equal(EncryptDecryptValue(value), value);
}
private string EncryptDecryptValue(string value)
{
var storageService = Substitute.For<ISecureStorageService>();
var keyService = Substitute.For<IKeyDerivationService>();
var settingsService = Substitute.For<ISettings>();
2017-04-20 21:53:17 +02:00
storageService.Contains("key").Returns(true);
storageService.Retrieve("key").Returns(
Convert.FromBase64String("QpSYI5k0bLQXEygUEHn4wMII3ERatuWDFBszk7JAhbQ="));
2016-05-02 08:52:09 +02:00
var service = new CryptoService(settingsService, storageService, keyService);
2017-04-20 21:53:17 +02:00
var encryptedValue = service.Encrypt(value);
return service.Decrypt(encryptedValue);
2016-05-02 08:52:09 +02:00
}
}
}