Я настраиваю макет, как показано ниже.Он передается в конструктор цели.У цели есть метод Decrypt, который вызывается дважды в течение времени жизни цели.Каждый раз, когда вызывается метод Decrypt, он удаляет сертификат, «обновленный» в программе установки.Однако при повторном вызове объекта Decrypt я получаю метод ObjectDisposed при попытке расшифровки.Если я заменим этот Mock на фальшивую реализацию ICertificateHelperAdapter, которая вызывает GetCertificate (), то второй вызов Decrypt будет работать правильно.
Я делаю вывод, что когда я использую Mock, он не возвращает мне новый экземпляр объекта при последующих вызовах GetCertificate.Это по замыслу?
private Mock<ICertificateHelperAdapter> GetCertificateHelperAdapter()
{
Mock<ICertificateHelperAdapter> certificateHelper = new Mock<ICertificateHelperAdapter>();
certificateHelper.Setup(
ch => ch.GetCertificate(CertStoreName.My, StoreLocation.LocalMachine, It.IsAny<string>())).Returns(this.GetCertificate()).Verifiable();
return certificateHelper;
}
private X509Certificate2 GetCertificate()
{
return new X509Certificate2(Environment.CurrentDirectory + "\\" + "azureconfig.pfx", "dingos");
}