public void BeginMonitorBasicTest(int numLines, int interval) { MonitorTestSetUp(); var cts = new CancellationTokenSource(); Monitor = MonitorFactory.CreateMonitor(MonitorType.Timer, TestHelper.CreateOptions(TestOutputDirectory, "*.txt", interval), WriteToFile, cts.Token); Monitor.BeginMonitor(); AddAFile(numLines); Assert.AreEqual(2, AddedFiles.Count); // sleep here so the timer has fired once Thread.Sleep(interval + 500); // check the event output file for 1 created event var lines = ReadLines(AddedFiles[0]); Assert.AreEqual(1, lines.Count); CheckLine(lines[0], "Created", AddedFiles[1], numLines); // change the file AppendAllText(AddedFiles[1], "11\n"); // sleep here so the timer has fired again Thread.Sleep(interval); lines = ReadLines(AddedFiles[0]); Assert.AreEqual(2, lines.Count); CheckLine(lines[0], "Created", AddedFiles[1], numLines); CheckLine(lines[1], "Changed", AddedFiles[1], 1); // change the file WriteAllText(AddedFiles[1], "0\n"); // sleep here so the timer has fired again Thread.Sleep(interval); lines = ReadLines(AddedFiles[0]); Assert.AreEqual(3, lines.Count); CheckLine(lines[0], "Created", AddedFiles[1], numLines); CheckLine(lines[1], "Changed", AddedFiles[1], 1); CheckLine(lines[2], "Changed", AddedFiles[1], -numLines); // delete the file File.Delete(AddedFiles[1]); // sleep here so the timer has fired again Thread.Sleep(interval); lines = ReadLines(AddedFiles[0]); Assert.AreEqual(4, lines.Count); CheckLine(lines[0], "Created", AddedFiles[1], numLines); CheckLine(lines[1], "Changed", AddedFiles[1], 1); CheckLine(lines[2], "Changed", AddedFiles[1], -numLines); CheckLine(lines[3], "Deleted", AddedFiles[1], 0); cts.Cancel(false); }