public void testClose()
 {
     int minimumTimeInMilliseconds = 100;
     long startTime = DateTime.Now.Ticks;
     ITimer timer = new TsdTimer("timerName", true);
     Assert.NotNull(timer);
     Thread.Sleep(minimumTimeInMilliseconds);
     timer.Dispose();
     long elapsedTimeInNanoseconds = (long)((DateTime.Now.Ticks - startTime) *100);
     Assert.GreaterOrEqual(timer.Value, minimumTimeInMilliseconds * 1e6);
     Assert.LessOrEqual(timer.Value, elapsedTimeInNanoseconds);
 }
 public void testStopAfterMetricsClosed()
 {
     var isOpen = true;
     var logger = new Mock<ILog>(MockBehavior.Strict);
     TsdTimer timer = new TsdTimer("timerName", isOpen, logger.Object);
     timer.Dispose();
     logger.Setup(l => l.Error(It.IsAny<Action<Common.Logging.FormatMessageHandler>>()));
     timer.Stop();
     logger.VerifyAll();
 }