public void InitializesTransmitterWithNetworkAvailabilityPolicy() { var network = new StubNetwork { OnIsAvailable = () => false }; var channel = new ServerTelemetryChannel(network, new StubApplicationLifecycle()); channel.Initialize(new TelemetryConfiguration()); Thread.Sleep(50); Assert.Equal(0, channel.Transmitter.Sender.Capacity); }
public void DoesNotSetMaxSenderAndBufferCapacitiesToZeroWhenNetworkAvailabilityCheckFailsHopingThatTransmissionsThemselvesMaySucceed() { var network = new StubNetwork { OnIsAvailable = () => { throw new Exception("NetworkInformationException"); } }; var policy = new NetworkAvailabilityTransmissionPolicy(network); policy.Initialize(new StubTransmitter()); Assert.Null(policy.MaxSenderCapacity); Assert.Null(policy.MaxBufferCapacity); }
public void SetsMaxSenderAndBufferCapacitiesToZeroWhenNetworkIsUnavailable() { var network = new StubNetwork { OnIsAvailable = () => false }; var policy = new NetworkAvailabilityTransmissionPolicy(network); policy.Initialize(new StubTransmitter()); Assert.Equal(0, policy.MaxSenderCapacity); Assert.Equal(0, policy.MaxBufferCapacity); }
public void DoesNotSetMaxSenderAndBufferCapacitiesToZeroWhenNetworkIsAvailable() { var network = new StubNetwork { OnIsAvailable = () => true }; var policy = new NetworkAvailabilityTransmissionPolicy(network); policy.Initialize(new StubTransmitter()); Assert.Null(policy.MaxSenderCapacity); Assert.Null(policy.MaxBufferCapacity); }
public void DisposeUnsubscribesNetworkChangeEvents() { bool unsubscribeCalled = false; var network = new StubNetwork { OnRemoveAddressChangedEventHandler = (h) => { unsubscribeCalled = true; } }; var policy = new NetworkAvailabilityTransmissionPolicy(network); policy.Dispose(); Assert.True(unsubscribeCalled); }
public void ConstructorDoesNotSubscribeToNetworkChangeEventsToPreventExceptionsBeforePolicyIsInitialized() { var network = new StubNetwork { OnIsAvailable = () => false }; var policy = new NetworkAvailabilityTransmissionPolicy(network); network.OnStatusChanged(EventArgs.Empty); Assert.Null(policy.MaxSenderCapacity); Assert.Null(policy.MaxBufferCapacity); }
public void HandlesExceptionsThrownByNetworkWhenAddingAddressChangedEventHandler() { using (var listener = new TestEventListener()) { const long AllKeywords = -1; listener.EnableEvents(TelemetryChannelEventSource.Log, EventLevel.Warning, (EventKeywords)AllKeywords); var exception = new SocketException(); var network = new StubNetwork { OnAddAddressChangedEventHandler = handler => { throw exception; } }; var policy = new NetworkAvailabilityTransmissionPolicy(network); policy.Initialize(new StubTransmitter()); EventWrittenEventArgs error = listener.Messages.First(arg => arg.EventId == 38); Assert.Contains(exception.Message, (string)error.Payload[0], StringComparison.CurrentCulture); } }
public void HandlesExceptionsThrownByNetworkIsAvailable() { using (var listener = new TestEventListener()) { const long AllKeywords = -1; listener.EnableEvents(TelemetryChannelEventSource.Log, EventLevel.Warning, (EventKeywords)AllKeywords); var exception = new Exception("Socket Error"); var network = new StubNetwork { OnIsAvailable = () => { throw exception; } }; var policy = new NetworkAvailabilityTransmissionPolicy(network); policy.Initialize(new StubTransmitter()); network.OnStatusChanged(EventArgs.Empty); EventWrittenEventArgs error = listener.Messages.First(); Assert.Contains(exception.Message, (string)error.Payload[0], StringComparison.Ordinal); } }
public void AsksTransmitterToApplyPoliciesWhenNetworkAvailabilityChanges() { bool policiesApplied = false; var transmitter = new StubTransmitter(); transmitter.OnApplyPolicies = () => { policiesApplied = true; }; var network = new StubNetwork(); var policy = new NetworkAvailabilityTransmissionPolicy(network); policy.Initialize(transmitter); network.OnStatusChanged(EventArgs.Empty); Assert.True(policiesApplied); }
public void ResetsMaxSenderAndBufferCapacitiesToNullWhenNetworkBecomesAvailable() { bool isNetworkAvailable = false; var network = new StubNetwork { OnIsAvailable = () => isNetworkAvailable }; var policy = new NetworkAvailabilityTransmissionPolicy(network); policy.Initialize(new StubTransmitter()); isNetworkAvailable = true; network.OnStatusChanged(EventArgs.Empty); Assert.Null(policy.MaxSenderCapacity); Assert.Null(policy.MaxBufferCapacity); }