public void WhenConstructiingShouldInitialiseWaitHandle()
 {
     Mock<INamedWaitHandle> mockWaitHandle = new Mock<INamedWaitHandle>();
     Mock<INetwork> mockNetwork = new Mock<INetwork>();
     NetworkStateService service = new NetworkStateService(mockWaitHandle.Object, mockNetwork.Object);
     mockWaitHandle.Verify(h => h.Initialize(false, NetworkStateService.NetworkConnectedNamedEvent), Times.Exactly(1));
 }
Ejemplo n.º 2
0
        public void WhenCallingNetworkStateChangeShouldPostAllMessages()
        {
            var networkStateWaitHandle = new AutoResetEventAdapter(false);
            var networkState           = new NetworkStateService(new Mock <ISystemNotifier>().Object, networkStateWaitHandle);

            this.PeriodicBackoutCheck.Setup(p => p.IsTimeElapsed("ForwardService", 100))
            .Returns(true);

            this.ForwardService = new ForwardService(this.PersistentStore, this.HttpClient.Object, networkState, this.WaitHandle, 100, 0, false, this.Logger.Object);
            this.ForwardService.PeriodicBackoutCheck = this.PeriodicBackoutCheck.Object;

            var returnResult = Result.TemporaryError;

            this.HttpClient.Setup(c => c.Post(It.IsAny <IMessage>()))
            .Returns(() => returnResult);

            var message = this.CreateMessage();

            this.ForwardService.Start();
            networkState.Start();
            Thread.Sleep(100);

            this.PersistentStore.Add(message);
            this.PersistentStore.Add(message);
            this.PersistentStore.Add(message);
            Thread.Sleep(200);

            returnResult = Result.Ok;
            networkStateWaitHandle.Set();
            Thread.Sleep(6000);

            Assert.Null(this.PersistentStore.Get());

            this.PeriodicBackoutCheck.Verify(p => p.Record("ForwardService"), Times.AtLeast(1));
        }
Ejemplo n.º 3
0
        public void WhenCallingNetworkStateChangeAndServiceStopedShouldNotPostAllMessages()
        {
            var networkStateWaitHandle = new AutoResetEventAdapter(false);
            var networkState           = new NetworkStateService(new Mock <ISystemNotifier>().Object, networkStateWaitHandle);

            this.ForwardService = new ForwardService(this.PersistentStore, this.HttpClient.Object, networkState, this.WaitHandle, 100, 0, false, this.Logger.Object);

            var returnResult = Result.TemporaryError;

            this.HttpClient.Setup(c => c.Post(It.IsAny <IMessage>()))
            .Returns(() => returnResult);

            var message = this.CreateMessage();

            this.ForwardService.Start();
            networkState.Start();
            Thread.Sleep(50);

            this.PersistentStore.Add(message);
            Thread.Sleep(200);

            this.ForwardService.Stop();
            returnResult = Result.Ok;
            networkStateWaitHandle.Set();
            Thread.Sleep(500);

            Assert.NotNull(this.PersistentStore.Get());
        }
Ejemplo n.º 4
0
        public void WhenCallingNetworkStateChangeAndServiceStopedShouldNotPostAllMessages()
        {
            var networkStateWaitHandle = new AutoResetEventAdapter(false);
            var networkState = new NetworkStateService(new Mock<ISystemNotifier>().Object, networkStateWaitHandle);

            this.ForwardService = new ForwardService(this.PersistentStore, this.HttpClient.Object, networkState, this.WaitHandle, 100, 0);

            var returnResult = Result.TemporaryError;
            this.HttpClient.Setup(c => c.Post(It.IsAny<IMessage>()))
                .Returns(() => returnResult);

            var message = this.CreateMessage();

            this.ForwardService.Start();
            networkState.Start();
            Thread.Sleep(50);

            this.PersistentStore.Add(message);
            Thread.Sleep(200);

            this.ForwardService.Stop();
            returnResult = Result.Ok;
            networkStateWaitHandle.Set();
            Thread.Sleep(500);

            Assert.NotNull(this.PersistentStore.Get());
        }
Ejemplo n.º 5
0
        public void WhenCallingNetworkStateChangeShouldPostAllMessages()
        {
            var networkStateWaitHandle = new AutoResetEventAdapter(false);
            var networkState = new NetworkStateService(new Mock<ISystemNotifier>().Object, networkStateWaitHandle);

            this.PeriodicBackoutCheck.Setup(p => p.IsTimeElapsed("ForwardService", 100))
               .Returns(true);

            this.ForwardService = new ForwardService(this.PersistentStore, this.HttpClient.Object, networkState, this.WaitHandle, 100, 0, false, this.Logger.Object);
            this.ForwardService.PeriodicBackoutCheck = this.PeriodicBackoutCheck.Object;

            var returnResult = Result.TemporaryError;
            this.HttpClient.Setup(c => c.Post(It.IsAny<IMessage>()))
                .Returns(() => returnResult);

            var message = this.CreateMessage();

            this.ForwardService.Start();
            networkState.Start();
            Thread.Sleep(100);

            this.PersistentStore.Add(message);
            this.PersistentStore.Add(message);
            this.PersistentStore.Add(message);
            Thread.Sleep(200);

            returnResult = Result.Ok;
            networkStateWaitHandle.Set();
            Thread.Sleep(6000);

            Assert.Null(this.PersistentStore.Get());

            this.PeriodicBackoutCheck.Verify(p => p.Record("ForwardService"), Times.AtLeast(1));
        }