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