public void NotAttached()
        {
            var dlSubscription = new ActiveSubsciptionManager();

            var subs1 = new TestSubscription();

            Assert.IsFalse(dlSubscription.IsActive(subs1));
        }
        public void AttachAndDetach()
        {
            var dlSubscription = new ActiveSubsciptionManager();

            var subs = new TestSubscription();

            dlSubscription.Attach(subs);

            Assert.IsTrue(dlSubscription.IsActive(subs));

            dlSubscription.Detach(subs);
            Assert.IsFalse(dlSubscription.IsActive(subs));
        }
 internal IndividualDiagnosticSourceListener(
     DiagnosticListener diagnosticListener,
     IDiagnosticEventHandler eventHandler,
     DiagnosticSourceListenerBase <TContext> telemetryDiagnosticSourceListener,
     TContext context,
     ActiveSubsciptionManager subscriptionManager)
 {
     this.diagnosticListener = diagnosticListener;
     this.eventHandler       = eventHandler;
     this.Context            = context;
     this.telemetryDiagnosticSourceListener = telemetryDiagnosticSourceListener;
     this.subscriptionManager = subscriptionManager;
     this.subscriptionManager.Attach(this);
 }
        public void DetachTwiceInactive()
        {
            var dlSubscription = new ActiveSubsciptionManager();

            var subs1 = new TestSubscription();

            dlSubscription.Attach(subs1);

            var subs2 = new TestSubscription();

            dlSubscription.Attach(subs2);

            dlSubscription.Detach(subs2);
            dlSubscription.Detach(subs2);

            Assert.IsTrue(dlSubscription.IsActive(subs1));
        }
        public void AttachManyAndDetachActive()
        {
            var dlSubscription = new ActiveSubsciptionManager();

            var subs1 = new TestSubscription();

            dlSubscription.Attach(subs1);

            var subs2 = new TestSubscription();

            dlSubscription.Attach(subs2);

            var subs3 = new TestSubscription();

            dlSubscription.Attach(subs3);

            dlSubscription.Detach(subs1);
            Assert.IsTrue(dlSubscription.IsActive(subs2) ^ dlSubscription.IsActive(subs3));
        }