Esempio n. 1
0
        public void LifeCycleTest()
        {
            var listener1Success = false;

            var eventPublisher = new TestEventPublisher();

            var listener1 = new LivetWeakEventListener<EventHandler, EventArgs>(
                h => new EventHandler(h),
                h => eventPublisher.EmptyEvent += h,
                h => eventPublisher.EmptyEvent -= h,
                (sender, e) => listener1Success = true);

            //------------------
            listener1Success.Is(false);

            eventPublisher.RaiseEmptyEvent();

            listener1Success.Is(true);

            //------------------
            listener1Success = false;

            listener1.Dispose();
            eventPublisher.RaiseEmptyEvent();

            listener1Success.Is(false);
        }
Esempio n. 2
0
        public void WeakEventTest()
        {
            var listener1Success = false;

            var eventPublisher = new TestEventPublisher();

            var listener1 = new LivetWeakEventListener<EventHandler, EventArgs>(
                h => new EventHandler(h),
                h => eventPublisher.EmptyEvent += h,
                h => eventPublisher.EmptyEvent -= h,
                (sender, e) => listener1Success = true);

            var listenerWeakReference = new WeakReference(listener1);

            //------------------
            listener1Success.Is(false);

            eventPublisher.RaiseEmptyEvent();

            listener1Success.Is(true);

            //------------------
            listener1Success = false;

            listener1 = null;

            GC.Collect();
            GC.WaitForPendingFinalizers();
            GC.Collect();

            eventPublisher.RaiseEmptyEvent();

            listener1Success.Is(false);
        }
Esempio n. 3
0
        public void LifeCycleTest()
        {
            var listener1Success = false;
            var listener2Success = false;

            var eventPublisher = new TestEventPublisher();

            var listener1 = GetEmptyListener(eventPublisher, (sender, e) => listener1Success = true);
            var listener2 = GetStringListener(eventPublisher, (sender, e) => listener2Success = true);

            //------------------
            listener1Success.Is(false);
            listener2Success.Is(false);

            eventPublisher.RaiseEmptyEvent();
            eventPublisher.RaiseStringEvent(string.Empty);

            listener1Success.Is(true);
            listener2Success.Is(true);

            //------------------
            listener1Success = false;
            listener2Success = false;

            listener1.Dispose();
            listener2.Dispose();
            eventPublisher.RaiseEmptyEvent();
            eventPublisher.RaiseStringEvent(string.Empty);

            listener1Success.Is(false);
            listener2Success.Is(false);
        }