public void Start() { this.watcher = new FileDropWatcher(@"C:\droplocation", "*.snd"); this.droppedSubscription = this.watcher.Dropped .Select(file => new ProcessFile(file.FullPath, file.Name, Guid.NewGuid())) .Subscribe(msg => this.Bus.SendLocal(msg)); this.watcher.Start(); }
public async Task PollExisting_FileBeforeStart_StreamsDropped() { using (var watcher = new FileDropWatcher(TempPath, "Monitored.Txt")) { var firstDropped = watcher.Dropped.FirstAsync().ToTask(); var monitoredFile = Path.Combine(TempPath, "Monitored.Txt"); File.WriteAllText(monitoredFile, "foo"); watcher.PollExisting(); var dropped = await firstDropped; Expect(dropped.Name, Is.EqualTo("Monitored.Txt")); Expect(dropped.FullPath, Is.EqualTo(monitoredFile)); } }
public async Task FileRenamed_NoExistingFile_StreamsDropped() { using (var watcher = new FileDropWatcher(TempPath, "Monitored.Txt")) { var firstDropped = watcher.Dropped.FirstAsync().ToTask(); var otherFile = Path.Combine(TempPath, "Other.Txt"); File.WriteAllText(otherFile, "foo"); watcher.Start(); var monitoredFile = Path.Combine(TempPath, "Monitored.Txt"); File.Move(otherFile, monitoredFile); var dropped = await firstDropped; Expect(dropped.Name, Is.EqualTo("Monitored.Txt")); Expect(dropped.FullPath, Is.EqualTo(monitoredFile)); } }
public async Task PollExisting_SecondTime_StreamsSecondTime() { using (var watcher = new FileDropWatcher(TempPath, "Monitored.Txt")) { var secondDropped = watcher.Dropped.Skip(1).FirstAsync().ToTask(); var monitoredFile = Path.Combine(TempPath, "Monitored.Txt"); File.WriteAllText(monitoredFile, "foo"); watcher.PollExisting(); watcher.PollExisting(); var dropped = await secondDropped; Expect(dropped.Name, Is.EqualTo("Monitored.Txt")); Expect(dropped.FullPath, Is.EqualTo(monitoredFile)); } }