Files
WeddingShare/WeddingShare.UnitTests/Tests/Helpers/EncrytpionHelper.cs
2025-10-28 18:21:03 +00:00

86 lines
3.6 KiB
C#

using WeddingShare.Constants;
using WeddingShare.Helpers;
namespace WeddingShare.UnitTests.Tests.Helpers
{
public class EncrytpionHelperTests
{
private readonly ISettingsHelper _settings = Substitute.For<ISettingsHelper>();
public EncrytpionHelperTests()
{
_settings.GetOrDefault(Security.Encryption.HashType, Arg.Any<string>()).Returns("SHA256");
_settings.GetOrDefault(Security.Encryption.Iterations, Arg.Any<int>()).Returns(1000);
}
[SetUp]
public void Setup()
{
}
[TestCase("Test", "Key1", "Salt1", "ZMw15YpZ+uph9psdR6tEZg==")]
[TestCase("Test", "Key2", "Salt2", "p/fwjLVXvJ2dRKbXDNhxDA==")]
[TestCase("Test", "Key3", "Salt3", "47VYeotX2C8GPuhaQlrWXg==")]
public void EncrytpionHelper_ValidDetails(string value, string key, string salt, string expected)
{
_settings.GetOrDefault(Security.Encryption.Key, Arg.Any<string>()).Returns(key);
_settings.GetOrDefault(Security.Encryption.Salt, Arg.Any<string>()).Returns(salt);
var actual = new EncryptionHelper(_settings).Encrypt(value);
Assert.That(actual, Is.EqualTo(expected));
}
[TestCase("Test1", "Salt1")]
[TestCase("Test2", "Salt2")]
[TestCase("Test3", "Salt3")]
public void EncrytpionHelper_NoKey(string value, string salt)
{
_settings.GetOrDefault(Security.Encryption.Key, Arg.Any<string>()).Returns(string.Empty);
_settings.GetOrDefault(Security.Encryption.Salt, Arg.Any<string>()).Returns(salt);
var actual = new EncryptionHelper(_settings).Encrypt(value);
Assert.That(actual, Is.EqualTo(value));
}
[TestCase("Test1", "Key1")]
[TestCase("Test2", "Key2")]
[TestCase("Test3", "Key3")]
public void EncrytpionHelper_NoSalt(string value, string key)
{
_settings.GetOrDefault(Security.Encryption.Key, Arg.Any<string>()).Returns(key);
_settings.GetOrDefault(Security.Encryption.Salt, Arg.Any<string>()).Returns(string.Empty);
var actual = new EncryptionHelper(_settings).Encrypt(value);
Assert.That(actual, Is.EqualTo(value));
}
[TestCase("Test1", "Key1", "Salt1")]
[TestCase("Test2", "Key2", "Salt2")]
[TestCase("Test3", "Key3", "Salt3")]
public void EncrytpionHelper_DifferentHashes(string value, string key, string salt)
{
_settings.GetOrDefault(Security.Encryption.Key, Arg.Any<string>()).Returns(key);
_settings.GetOrDefault(Security.Encryption.Salt, Arg.Any<string>()).Returns(salt);
var helper1 = new EncryptionHelper(_settings).Encrypt(value);
_settings.GetOrDefault(Security.Encryption.Key, Arg.Any<string>()).Returns("Unit");
_settings.GetOrDefault(Security.Encryption.Salt, Arg.Any<string>()).Returns("Test");
var helper2 = new EncryptionHelper(_settings).Encrypt(value);
Assert.That(helper1, Is.Not.EqualTo(helper2));
}
[TestCase("Key", "", false)]
[TestCase("", "Salt", false)]
[TestCase("Key", "Salt", true)]
public void EncrytpionHelper_IsEncryptionEnabled(string key, string salt, bool expected)
{
_settings.GetOrDefault(Security.Encryption.Key, Arg.Any<string>()).Returns(key);
_settings.GetOrDefault(Security.Encryption.Salt, Arg.Any<string>()).Returns(salt);
var actual = new EncryptionHelper(_settings).IsEncryptionEnabled();
Assert.That(actual, Is.EqualTo(expected));
}
}
}