public void TestFileMonitor() { var stack = new ConcurrentStack <FileMonitorObject>(); var monitor = new FileSystemMonitor(new MonitorCommandOptions() { MonitoredDirectories = Path.GetTempPath() }, x => stack.Push(x)); monitor.StartRun(); var created = Path.GetTempFileName(); // Create a file var renamed = $"{created}-renamed"; File.WriteAllText(created, "Test"); // Change the size File.Move(created, renamed); // Rename it File.Delete(renamed); //Delete it Thread.Sleep(100); monitor.StopRun(); Assert.IsTrue(stack.Any(x => x.NotifyFilters == NotifyFilters.FileName && x.Path == created)); Assert.IsTrue(stack.Any(x => x.NotifyFilters == NotifyFilters.Size && x.Path == created)); Assert.IsTrue(stack.Any(x => x.ChangeType == CHANGE_TYPE.RENAMED && x.NotifyFilters == NotifyFilters.FileName && x.Path == renamed)); Assert.IsTrue(stack.Any(x => x.ChangeType == CHANGE_TYPE.DELETED && x.Path == renamed)); }