Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }