public void Setup() { _mocker = new AutoMoqer(); var mockFileSystem = new MockFileSystem(); _mocker.SetInstance<IFileSystem>(mockFileSystem); // GetMock of the abstract class before create to prevent automoq bugs _mocker.GetMock<FileSystemWatcherBase>(); _instance = _mocker.Create<DirectoryWatcher>(); // Mocked files var content = new byte[] {1, 1, 1}; _expectedFileLength = content.Length; _expectedWriteDate = DateTime.Now.ToUniversalTime(); var nameWithPath = mockFileSystem.Path.Combine(Path, FileName); mockFileSystem.AddFile(nameWithPath, new MockFileData(content) { LastWriteTime = _expectedWriteDate }); _trackedFile = new TrackedFile(); _mocker.GetMock<ITrackedFileStore>() .Setup(x => x.GetTrackedFileByFullPath(nameWithPath)) .Returns(_trackedFile); }
public void AddFileActionToTrackedFile(TrackedFile file, TrackedFileAction action) { if (file == null) { file = new TrackedFile(); _trackedFiles.Add(file); } file.Actions.Add(action); }
public void Action_Added_When_File_Modified_Date_Is_Newer() { DateTime writeTime = DateTime.Now.ToUniversalTime(); var filePath = Path.Combine(BaseDirectory, "abc.def"); var content = new byte[] { 1, 1, 1 }; _fileSystem.AddFile(filePath, new MockFileData(content) { LastWriteTime = writeTime }); var instance = _mocker.Create<DirectoryCrawler>(); var trackedFile = new TrackedFile { Actions = new List<TrackedFileAction>(new[] { new TrackedFileAction { Path = BaseDirectory, FileName = Path.GetFileName(filePath), Action = FileActions.Added, FileLength = content.Length, FileLastModifiedDateUtc = writeTime.AddDays(-1), EffectiveDateUtc = DateTime.Now.ToUniversalTime() } }) }; _mocker.GetMock<ITrackedFileStore>() .Setup(x => x.GetTrackedFilesInPath(BaseDirectory)) .Returns(new[] { trackedFile }); instance.CheckDirectoryContents(BaseDirectory); _mocker.GetMock<ITrackedFileStore>() .Verify(x => x.AddFileActionToTrackedFile(trackedFile, It.Is<TrackedFileAction>(y => y.Action == FileActions.Modified)), Times.Once); _mocker.GetMock<ITrackedFileStore>() .Verify(x => x.AddFileActionToTrackedFile(trackedFile, It.Is<TrackedFileAction>(y => y.FileLastModifiedDateUtc == writeTime)), Times.Once); }
public void No_Action_Added_When_Existing_File_Not_Changed() { DateTime writeTime = DateTime.Now.ToUniversalTime(); var filePath = Path.Combine(BaseDirectory, "abc.def"); var content = new byte[] {1, 1, 1}; _fileSystem.AddFile(filePath,new MockFileData(content) { LastWriteTime = writeTime }); var instance = _mocker.Create<DirectoryCrawler>(); var trackedFile = new TrackedFile { Actions = new List<TrackedFileAction>(new[] { new TrackedFileAction { Path = BaseDirectory, FileName = Path.GetFileName(filePath), Action = FileActions.Added, FileLength = content.Length, FileLastModifiedDateUtc = writeTime, EffectiveDateUtc = DateTime.Now.ToUniversalTime() } }) }; _mocker.GetMock<ITrackedFileStore>() .Setup(x => x.GetTrackedFilesInPath(BaseDirectory)) .Returns(new[] { trackedFile }); instance.CheckDirectoryContents(BaseDirectory); _mocker.GetMock<ITrackedFileStore>() .Verify(x => x.AddFileActionToTrackedFile(It.IsAny<TrackedFile>(), It.IsAny<TrackedFileAction>()), Times.Never); }