public void FilterLocalFSRenamedEvents() { this.SetupMocks(); var fileEvent = new FSMovedEvent(Path.Combine(this.ignoredPath, "old_file.txt"), Path.Combine(this.ignoredPath, "file.txt"), false); Assert.That(this.underTest.Handle(fileEvent), Is.True); }
public void DoNotTransformFSIgnoredFolderMovedEventToAddedEvent() { this.SetupMocks(); string fileName = "folder"; var oldFile = Path.Combine(this.ignoredLocalPath); var newFile = Path.Combine(Path.GetTempPath(), fileName); var moveFile = new FSMovedEvent(oldFile, newFile, true); Assert.That(this.underTest.Handle(moveFile), Is.False); this.queue.VerifyThatNoEventIsAdded(); }
public void TransformFSMovedEventToDeletedEvent() { this.SetupMocks(); string fileName = "file.txt"; var oldFile = Path.Combine(Path.GetTempPath(), fileName); var newFile = Path.Combine(this.ignoredLocalPath, fileName); var moveFile = new FSMovedEvent(oldFile, newFile, false); Assert.That(this.underTest.Handle(moveFile), Is.True); this.queue.Verify(q => q.AddEvent(It.Is <FSEvent>(e => !e.IsDirectory && e.LocalPath == oldFile && e.Type == WatcherChangeTypes.Deleted)), Times.Once); this.queue.VerifyThatNoOtherEventIsAddedThan <FSEvent>(); }
public void HandleFSFolderRenamedEvents() { string oldpath = Path.Combine(this.localFolder.FullName, Path.GetRandomFileName()); this.queue.Setup(q => q.AddEvent(It.IsAny <AbstractFolderEvent>())) .Callback((ISyncEvent f) => this.returnedFolderEvent = f as AbstractFolderEvent); var watcher = new WatcherConsumer(this.queue.Object); var folderRenamedFSEvent = new FSMovedEvent(oldpath, this.localFolder.FullName, true); Assert.True(watcher.Handle(folderRenamedFSEvent)); Assert.AreEqual(MetaDataChangeType.MOVED, this.returnedFolderEvent.Local); Assert.AreEqual(this.localFolder.FullName, (this.returnedFolderEvent as FolderEvent).LocalFolder.FullName); Assert.AreEqual(oldpath, (this.returnedFolderEvent as FolderMovedEvent).OldLocalFolder.FullName); Assert.IsNull((this.returnedFolderEvent as FolderMovedEvent).RemoteFolder); Assert.IsNull((this.returnedFolderEvent as FolderMovedEvent).OldRemoteFolderPath); Assert.AreEqual(MetaDataChangeType.NONE, (this.returnedFolderEvent as FolderEvent).Remote); }
public void ReportFSFolderMovedEvent() { var anotherSubFolder = new DirectoryInfo(Path.Combine(this.localFolder.FullName, Path.GetRandomFileName())); anotherSubFolder.Create(); string oldpath = this.localSubFolder.FullName; string newpath = Path.Combine(anotherSubFolder.FullName, Path.GetRandomFileName()); this.queue.Setup(q => q.AddEvent(It.IsAny <FSMovedEvent>())) .Callback((ISyncEvent f) => this.returnedFSEvent = f as FSMovedEvent); var watcherData = this.GetWatcherData(this.localFolder.FullName, this.queue.Object); watcherData.Watcher.EnableEvents = true; var t = Task.Factory.StartNew(() => { int count = 0; while (this.returnedFSEvent == null && count < RETRIES) { WaitWatcherData(watcherData, newpath, WatcherChangeTypes.Renamed, MILISECONDSWAIT); count++; } }); new DirectoryInfoWrapper(this.localSubFolder).MoveTo(newpath); t.Wait(); if (this.returnedFSEvent != null) { FSMovedEvent movedEvent = this.returnedFSEvent as FSMovedEvent; Assert.That(movedEvent.OldPath, Is.EqualTo(oldpath)); Assert.That(movedEvent.LocalPath, Is.EqualTo(newpath)); Assert.That(movedEvent.Type, Is.EqualTo(WatcherChangeTypes.Renamed)); Assert.That(movedEvent.IsDirectory, Is.True); } else { Assert.Inconclusive("Missed folder moved event(s)"); } this.localSubFolder = new DirectoryInfo(newpath); }