public void DoubleDisposeOfListener() { var listener = new TelemetryListener("MyListener"); int completionCount = 0; IDisposable subscription = listener.Subscribe(MakeObserver <KeyValuePair <string, object> >(_ => { }, () => completionCount++)); listener.Dispose(); listener.Dispose(); subscription.Dispose(); subscription.Dispose(); Assert.Equal(1, completionCount); }
public void Completed() { var result = new List <KeyValuePair <string, object> >(); var observer = new ObserverToList <TelemData>(result); var listener = new TelemetryListener("MyListener"); var subscription = listener.Subscribe(observer); listener.WriteTelemetry("IntPayload", 5); Assert.Equal(1, result.Count); Assert.Equal("IntPayload", result[0].Key); Assert.Equal(5, result[0].Value); Assert.False(observer.Completed); // The listener dies listener.Dispose(); Assert.True(observer.Completed); // confirm that we can unsubscribe without crashing subscription.Dispose(); // If we resubscribe after dispose, but it does not do anything. subscription = listener.Subscribe(observer); listener.WriteTelemetry("IntPayload", 5); Assert.Equal(1, result.Count); }