public async Task CreatesEventsFile() { var repository = new SqliteRepository(); var fileProvider = new WindowsFileProvider(); var eventStore = new EventSource(repository, fileProvider); using var fileWatcher = new WindowsFileSystemWatcher(fileProvider); using var file = new TemporaryFile(); file.Append("InitialText"); using var target = new SourceControl(fileProvider, eventStore, fileWatcher); await target.Add(file.Fullname); Assert.IsTrue(fileProvider.Exists($"{file.Fullname}.events")); Assert.IsFalse(fileProvider.IsEmpty($"{file.Fullname}.events")); }
public async Task PreventsDuplicateEvents() { var eventCount = 0; using (var file = new TemporaryFile()) { var fileProvider = new WindowsFileProvider(); var target = new WindowsFileSystemWatcher(fileProvider); target.Monitor(file.Fullname); target.Changed += (e) => { eventCount++; }; file.Append("test"); file.Append("test"); } await Task.Delay(1000); // Gives the OS enough time to dispatch the event Assert.AreEqual(1, eventCount); }
/// <summary> /// Start MirrorFreezeCopyService. /// </summary> public virtual void Start() { if (this.PostCheck()) { foreach (Watcher runningWatcher in this.listWatcher) { if (this.CheckWatcherSourceFolderExist(runningWatcher)) { this.runningWatcherExecute = new WatcherExecute(); this.runningWindowsFileSystemWatcher = new WindowsFileSystemWatcher(this.runningWatcherExecute, this.retryOption); this.runningWindowsFileSystemWatcher.Start(runningWatcher); this.listWatcherExecute.Add(this.runningWatcherExecute); this.listWindowsFileSystemWatcher.Add(this.runningWindowsFileSystemWatcher); } } } else { NLogger.Info("There's no config to be run."); } }
public async Task AppendsEvents() { var repository = new SqliteRepository(); var fileProvider = new WindowsFileProvider(); var eventStore = new EventSource(repository, fileProvider); using var fileWatcher = new WindowsFileSystemWatcher(fileProvider); using var file = new TemporaryFile(); file.Append("InitialText"); using var target = new SourceControl(fileProvider, eventStore, fileWatcher); await target.Add(file.Fullname); file.Append("AdditionalText"); await Task.Delay(10000); var lines = await repository.ReadRecordsAsync($"{file.Fullname}.events").CountAsync(); Assert.AreEqual(2, lines); }