public void CheckActive()
        {
            var progress = ReplicationProgress.CreateActive(master, slaves);

            Assert.IsTrue(progress.IsActive);
            Assert.IsFalse(progress.InSync);
            slaves[0] = master;
            progress  = ReplicationProgress.CreateActive(master, slaves);
            Assert.IsTrue(progress.InSync);
        }
        public void Setup()
        {
            master = new HostStatus(new DnsEndPoint("Test", 1000), 2000);
            slaves = new[]
            {
                new HostStatus(new DnsEndPoint("Test", 1000), 1000)
            };

            instance = ReplicationProgress.CreateActive(
                master,
                slaves);
        }
        public void Track()
        {
            var progress = ReplicationProgress.CreateActive(
                new HostStatus(new DnsEndPoint("Test", 1), 100),
                new HostStatus(new DnsEndPoint("Test", 1), 100));
            var observable = scheduler.CreateHotObservable(
                new Recorded <Notification <ReplicationProgress> >(0, Notification.CreateOnNext(progress)),
                new Recorded <Notification <ReplicationProgress> >(1, Notification.CreateOnNext(progress)),
                new Recorded <Notification <ReplicationProgress> >(TimeSpan.FromSeconds(3).Ticks, Notification.CreateOnNext(progress)));

            instance.Track(observable);
            var oneStep = TimeSpan.FromSeconds(1).Ticks;

            scheduler.AdvanceBy(oneStep + 1);
            Assert.AreEqual(1, messages.Count);
            scheduler.AdvanceBy(oneStep);
            Assert.AreEqual(1, messages.Count);
            scheduler.AdvanceBy(oneStep * 2);
            Assert.AreEqual(2, messages.Count);
        }
 public void CheckActiveArguments()
 {
     Assert.Throws <ArgumentNullException>(() => ReplicationProgress.CreateActive(null, slaves));
     Assert.Throws <ArgumentNullException>(() => ReplicationProgress.CreateActive(master, null));
     Assert.Throws <ArgumentException>(() => ReplicationProgress.CreateActive(master));
 }