Это код для чтения файла из azure хранилища файлов и обработки данных. Я использую новейшие пакеты для хранения файлов.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse("FileStorageConnectionString");
CloudFileClient fileClient = storageAccount.CreateCloudFileClient();
CloudFileShare cloudShare = fileClient.GetShareReference("FileShareName");
var cloudFile = this.cloudShare.GetRootDirectoryReference().GetFileReference("file.txt");
var memoryStream = new MemoryStream();
cloudFile.DownloadToStream(memoryStream);
memoryStream.Position = 0;
var data = ProcessData(new StreamReader(memoryStream));
memoryStream.Dispose();
Для модульного тестирования этой части я пытаюсь смоделировать метод DownloadToStream, как этот, в модульном тесте.
var stream = new MemoryStream();
var fileStream = File.OpenRead("file.txt");
fileStream.CopyTo(stream);
stream.Position = 0;
var cloudFile = new Mock<CloudFile>(fakeStorageUri, fakeStorageCredentials);
cloudFile.Setup(x => x.DownloadToStream(It.IsAny<Stream>(), null, null, null))
.Callback((Stream target) =>
{
stream.CopyTo(target);
target.Position = 0;
});
, но я получаю это исключение при выполнении модульного теста. Что я здесь не так делаю?
Invalid callback. Setup on method with parameters (Stream,AccessCondition,FileRequestOptions,OperationContext)
cannot invoke callback with parameters (Stream).