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))
                    {
                        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))
            {
                reporter.Run();
            }
        }
示例#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);
        }
        public void Can_stop()
        {
            var block = new ManualResetEvent(false);

            RegisterMetrics();

            ThreadPool.QueueUserWorkItem(
                s =>
                {
                    var reporter = new FileReporter(Path.GetTempFileName());
                    reporter.Start(1, TimeUnit.Seconds);
                    reporter.Stopped += delegate { block.Set(); };
                    Thread.Sleep(2000);
                    reporter.Stop();
                });

            block.WaitOne();
        }