Example #1
0
        public void Monitor_CubeNtpServer()
        {
            using (var mon = new Ntp.NtpMonitor())
            {
                var start = DateTime.Now;
                var count = 0;
                var cts   = new CancellationTokenSource();

                mon.Server  = ""; // test
                mon.Server  = "ntp.cube-soft.jp";
                mon.Port    = 0;  // test
                mon.Port    = 123;
                mon.Timeout = TimeSpan.FromMilliseconds(500);

                mon.Subscribe(_ => throw new ArgumentException("Test"));
                mon.Subscribe(_ => { ++count; cts.Cancel(); });
                mon.Start();
                mon.Start(); // ignore
                Assert.That(Wait.For(cts.Token), "Timeout");
                mon.Stop();
                mon.Stop(); // ignore

                Assert.That(count, Is.AtLeast(1));
                Assert.That(mon.LastPublished.Value, Is.GreaterThan(start));
            }
        }
Example #2
0
 public void Monitor_NoSubscriptions() => Assert.DoesNotThrow(() =>
 {
     using (var mon = new Ntp.NtpMonitor())
     {
         mon.Start();
         Task.Delay(150).Wait();
         mon.Stop();
     }
 });
Example #3
0
        public void Monitor_InvalidNtpServer()
        {
            using (var mon = new Ntp.NtpMonitor())
            {
                var count = 0;

                mon.Server  = "dummy";
                mon.Port    = 999;
                mon.Timeout = TimeSpan.FromMilliseconds(100);

                mon.Subscribe(_ => ++ count);
                mon.Start();
                Task.Delay(150).Wait();
                mon.Stop();

                Assert.That(count, Is.EqualTo(0));
            }
        }
Example #4
0
        public void Reset()
        {
            using (var mon = new Ntp.NtpMonitor())
            {
                var count = 0;
                var cts   = new CancellationTokenSource();

                mon.Server  = "ntp.cube-soft.jp";
                mon.Port    = 123;
                mon.Timeout = TimeSpan.FromMilliseconds(500);

                mon.Subscribe(_ => { ++count; cts.Cancel(); });
                mon.Start(mon.Interval);
                mon.Reset();
                Assert.That(Wait.For(cts.Token), "Timeout");
                mon.Stop();

                Assert.That(count, Is.EqualTo(1));
            }
        }