Код: Выделить всё
using System.IO.Abstractions;
public class TestFileWatcher
{
private readonly IFileSystemWatcher _fileWatcher;
private readonly IFileSystem _fileSystem;
public bool isDeleted = false;
public TestFileWatcher(IFileSystem fileSystem)
{
_fileSystem = fileSystem;
_fileWatcher = _fileSystem.FileSystemWatcher.CreateNew();
AddFileWatch("deleteFile");
}
private void AddFileWatch(string path)
{
_fileWatcher.Path = _fileSystem.Path.GetDirectoryName(path);
_fileWatcher.Filter = _fileSystem.Path.GetFileName(path);
_fileWatcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.LastAccess
| NotifyFilters.DirectoryName | NotifyFilters.FileName;
_fileWatcher.Created += new FileSystemEventHandler(OnChanged);
_fileWatcher.Changed += new FileSystemEventHandler(OnChanged);
_fileWatcher.Deleted += new FileSystemEventHandler(OnChanged);
_fileWatcher.EnableRaisingEvents = true;
}
private void OnChanged(object source, FileSystemEventArgs e)
{
FileInfo fi = new FileInfo(e.FullPath);
fi.Refresh();
isDeleted = true;
}
}
Код: Выделить всё
using System.IO.Abstractions;
using System.IO.Abstractions.TestingHelpers;
using Moq;
using Xunit;
[Collection("Sequential")]
public class MockTests
{
[Fact]
public void Mock_TestFileWatcher()
{
var _mockFileSystem = new MockFileSystem()
{
FileSystemWatcher = new FileSystemWatcherFactory()
};
_mockFileSystem.AddFile("deleteFile", new MockFileData(""));
var test = new Mock(_mockFileSystem).Object;
_mockFileSystem.File.Delete("deleteFile");
Assert.True(test.isDeleted);
}
}
Буду признателен за любую помощь!
Подробнее здесь: https://stackoverflow.com/questions/789 ... filesystem
Мобильная версия