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 PassesTelemetryToTelemetryProcessor() { ITelemetry sentTelemetry = null; var channel = new ServerTelemetryChannel(); channel.Initialize(TelemetryConfiguration.CreateDefault()); channel.TelemetryProcessor = new StubTelemetryProcessor(null) { OnProcess = (t) => sentTelemetry = t }; var telemetry = new StubTelemetry(); channel.Send(telemetry); Assert.Equal(telemetry, sentTelemetry); }
public void InitializeCallsTransmitterInitialize() { var transmitterInitialized = new ManualResetEvent(false); var transmitter = new StubTransmitter(); transmitter.OnInitialize = () => { transmitterInitialized.Set(); }; var channel = new ServerTelemetryChannel { Transmitter = transmitter }; var initializedConfiguration = new TelemetryConfiguration(); channel.Initialize(initializedConfiguration); Assert.True(transmitterInitialized.WaitOne(1000)); }
public void AppliesTransmissionPoliciesToBeginSendingStoredTelemetry() { var transmissionPoliciesApplied = new ManualResetEvent(false); var transmitter = new StubTransmitter(); transmitter.OnApplyPolicies = () => { transmissionPoliciesApplied.Set(); }; var channel = new ServerTelemetryChannel { Transmitter = transmitter }; channel.Initialize(TelemetryConfiguration.CreateDefault()); var initializedConfiguration = new TelemetryConfiguration(); channel.Initialize(initializedConfiguration); Assert.True(transmissionPoliciesApplied.WaitOne(1000)); }
public void WaitsForAsynchronousFlushToCompleteAndAllowsItsExceptionsToBubbleUp() { var expectedException = new Exception(); var tcs = new TaskCompletionSource<object>(); tcs.SetException(expectedException); var mockTelemetryBuffer = new Mock<TelemetryChannel.Implementation.TelemetryBuffer>(); mockTelemetryBuffer.Setup(x => x.FlushAsync()).Returns(tcs.Task); var channel = new ServerTelemetryChannel { TelemetryBuffer = mockTelemetryBuffer.Object }; channel.Initialize(TelemetryConfiguration.CreateDefault()); var actualException = Assert.Throws<Exception>(() => channel.Flush()); Assert.Same(expectedException, actualException); }
public void FlushesTelemetryBuffer() { var mockTelemetryBuffer = new Mock<TelemetryChannel.Implementation.TelemetryBuffer>(); var channel = new ServerTelemetryChannel { TelemetryBuffer = mockTelemetryBuffer.Object }; channel.Initialize(TelemetryConfiguration.CreateDefault()); channel.Flush(); mockTelemetryBuffer.Verify(x => x.FlushAsync()); }