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)); }
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()); }
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()); }
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)); }