Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        public void Can_run_with_known_counters()
        {
            RegisterMetrics();

            using (var reporter = new FileReporter(_filename, _metrics))
            {
                reporter.Run();
            }
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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));
            }
        }
Ejemplo n.º 5
0
        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();
        }