public void SetOfflineStatusOverridesNetworkUnavailableStatus() { var testData = TestData.DataSource(); var connectivity = new MockConnectivityStateManager(false); var config = BasicConfig() .DataSource(testData) .ConnectivityStateManager(connectivity) .Offline(true) .Build(); using (var client = TestUtil.CreateClient(config, BasicUser)) { Assert.True(client.DataSourceStatusProvider.WaitFor(DataSourceState.SetOffline, TimeSpan.FromSeconds(5))); var statuses = new EventSink <DataSourceStatus>(); client.DataSourceStatusProvider.StatusChanged += statuses.Add; client.SetOffline(false, TimeSpan.FromSeconds(1)); var newStatus1 = statuses.ExpectValue(); Assert.Equal(DataSourceState.NetworkUnavailable, newStatus1.State); connectivity.Connect(true); var newStatus2 = statuses.ExpectValue(); Assert.Equal(DataSourceState.Initializing, newStatus2.State); var newStatus3 = statuses.ExpectValue(); Assert.Equal(DataSourceState.Valid, newStatus3.State); } }
public void EventProcessorIsOfflineWhenNetworkIsUnavailable() { var connectivityStateManager = new MockConnectivityStateManager(false); var eventProcessor = new MockEventProcessor(); var config = BasicConfig() .ConnectivityStateManager(connectivityStateManager) .Events(eventProcessor.AsSingletonFactory()) .Build(); using (var client = TestUtil.CreateClient(config, BasicUser)) { Assert.True(eventProcessor.Offline); connectivityStateManager.Connect(true); Assert.False(eventProcessor.Offline); connectivityStateManager.Connect(false); Assert.True(eventProcessor.Offline); // If client is configured offline... client.SetOffline(true, TimeSpan.FromSeconds(1)); // ...then even if the network comes back on, events stay off connectivityStateManager.Connect(true); Assert.True(eventProcessor.Offline); } }
public void DataSourceStatusStartsAsNetworkUnavailableIfNetworkIsUnavailable() { var connectivity = new MockConnectivityStateManager(false); var config = BasicConfig().ConnectivityStateManager(connectivity).Build(); using (var client = TestUtil.CreateClient(config, BasicUser)) { var initialStatus = client.DataSourceStatusProvider.Status; Assert.Equal(DataSourceState.NetworkUnavailable, initialStatus.State); Assert.Null(initialStatus.LastError); } }
public void ConnectionChangeShouldStopDataSource() { var mockUpdateProc = new MockPollingProcessor(null); var mockConnectivityStateManager = new MockConnectivityStateManager(true); var config = BasicConfig() .DataSource(mockUpdateProc.AsFactory()) .ConnectivityStateManager(mockConnectivityStateManager) .Build(); using (var client = TestUtil.CreateClient(config, BasicUser)) { mockConnectivityStateManager.Connect(false); Assert.False(mockUpdateProc.IsRunning); } }
public void DiagnosticEventsAreNotSentWhenNetworkIsUnavailable() { var connectivityStateManager = new MockConnectivityStateManager(false); var config = BasicConfig() .ConnectivityStateManager(connectivityStateManager) .Events(Components.SendEvents() .EventSender(_testEventSender) .DiagnosticRecordingIntervalNoMinimum(TimeSpan.FromMilliseconds(50))) .Build(); using (var client = TestUtil.CreateClient(config, BasicUser)) { _testEventSender.RequireNoPayloadSent(TimeSpan.FromMilliseconds(100)); connectivityStateManager.Connect(true); _testEventSender.RequirePayload(); } }