public void Can_run_in_background() { const int ticks = 3; var block = new ManualResetEvent(false); RegisterMetrics(); ThreadPool.QueueUserWorkItem( s => { using (var reporter = new FileReporter(_filename, _metrics)) { reporter.Start(3, TimeUnit.Seconds); while (true) { Thread.Sleep(1000); var runs = reporter.Runs; if (runs == ticks) { block.Set(); } } } }); block.WaitOne(TimeSpan.FromSeconds(5)); }
public void Can_run_with_known_counters() { RegisterMetrics(); using (var reporter = new FileReporter(_filename, _metrics)) { reporter.Run(); } }
public void File_is_created_with_json_content() { RegisterMetrics(); using (var reporter = new FileReporter(_filename, new JsonReportFormatter(_metrics))) { reporter.Run(); Assert.IsTrue(File.Exists(_filename)); } var contents = File.ReadAllText(_filename); Console.WriteLine(contents); }
public void CreateReport_WritesJobIdToFile(bool createJobIdFile) { var jobId = Guid.NewGuid(); const string extractionRoot = "root"; const string extractionDir = "proj1/extract"; var mockJobStore = new Mock <IExtractJobStore>(MockBehavior.Strict); mockJobStore .Setup( x => x.GetCompletedJobInfo(It.IsAny <Guid>()) ) .Returns( new CompletedExtractJobInfo( jobId, DateTime.UtcNow, DateTime.UtcNow + TimeSpan.FromHours(1), "1234", extractionDir, "SeriesInstanceUID", 1, null, false, false ) ); mockJobStore.Setup(x => x.GetCompletedJobRejections(It.IsAny <Guid>())).Returns(Enumerable.Empty <ExtractionIdentifierRejectionInfo>()); mockJobStore.Setup(x => x.GetCompletedJobAnonymisationFailures(It.IsAny <Guid>())).Returns(Enumerable.Empty <FileAnonFailureInfo>()); mockJobStore.Setup(x => x.GetCompletedJobVerificationFailures(It.IsAny <Guid>())).Returns(Enumerable.Empty <FileVerificationFailureInfo>()); var mockFileSystem = new MockFileSystem(); mockFileSystem.Directory.CreateDirectory(mockFileSystem.Path.Combine(extractionRoot, extractionDir)); var reporter = new FileReporter(mockJobStore.Object, mockFileSystem, extractionRoot, ReportFormat.Split, reportNewLine: null, createJobIdFile: createJobIdFile); reporter.CreateReport(jobId); string expectedJobIdFile = mockFileSystem.Path.Combine(extractionRoot, extractionDir, "jobId.txt"); if (createJobIdFile) { Assert.True(mockFileSystem.FileExists(expectedJobIdFile)); Assert.AreEqual(jobId.ToString(), mockFileSystem.File.ReadAllLines(expectedJobIdFile)[0]); } else { Assert.False(mockFileSystem.FileExists(expectedJobIdFile)); } }
public void Can_stop() { var block = new ManualResetEvent(false); RegisterMetrics(); ThreadPool.QueueUserWorkItem( s => { var reporter = new FileReporter(Path.GetTempFileName(), _metrics); reporter.Start(1, TimeUnit.Seconds); reporter.Stopped += delegate { block.Set(); }; Thread.Sleep(2000); reporter.Stop(); }); block.WaitOne(); }