Я собираю небольшой пакет NuGet, используя стандартное ядро dotnet.
NuGet проанализирует зашифрованный пакет SAML.
Наша организация использует библиотеку Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.
Чтобы разрешить разделение, я написал код для принятия экземпляра CryptographyManager в конструкторе одного из классов.
Я пытаюсь написать модульные тесты, которые будут проверять расшифровку зашифрованной строки, но не знаю, как Moq
CryptographyManager.
Проект модульного тестирования является проектом ядра DotNet.
Я конкретно, в NuGet, звоню:
var eb = Convert.FromBase64String(_xmlString);
// Decryption occurs here
var db = _cryptographyManager.DecryptSymmetric("RijndaelManaged", eb);
_xmlString = Encoding.Unicode.GetString(db);
Кто-нибудь может предложить указатели на то, как это может быть проверено модулем? Я бы предложил немного кода, хотя понятия не имею, с чего начать ... В моем модульном тесте отсутствует большой кусок:
[TestMethod]
public void TestThatEmployeeInformationEncryptedIsParsedCorrect()
{
// arrange
// NO IDEA WHAT TO DO HERE //
CryptographyManager cryptographyManager = null;
EmployeeInformation expected = new EmployeeInformation
{
FirstName = "Test",
LastName = "Case",
EmployeeNumber = "0001111111",
LanguageCode = "en",
CountryCode = "CA",
RequestedPage = string.Empty,
PositionId = "POS9999999",
Role = "EKR"
};
IParser p = new XMLParser(_encryptedGoodXml, cryptographyManager);
// act
EmployeeInformation result = p.EmployeeInformation;
// assert
result.Should().BeEquivalentTo(expected);
}