public void IsHandlerFor_Null_Throws()
        {
            var target  = new Stub1();
            var handler = new WeakEventHandler <Stub1, EventArgs>(target.Handler, eh => { });

            Assert.IsFalse(handler.IsHandlerFor(null));
        }
        public void IsHandlerFor_WrongObject_False()
        {
            var target  = new Stub1();
            var handler = new WeakEventHandler <Stub1, EventArgs>(target.Handler, eh => { });

            Assert.IsFalse(handler.IsHandlerFor(new Stub1().Handler));
        }
        public void IsHandlerFor_CorrectHandler_True()
        {
            var target  = new Stub1();
            var handler = new WeakEventHandler <Stub1, EventArgs>(target.Handler, eh => { });

            Assert.IsTrue(handler.IsHandlerFor(target.Handler));
        }
        public void IsHandlerFor_Null_Throws()
        {
            var target = new Stub1();
            var handler = new WeakEventHandler<Stub1, EventArgs>(target.Handler, eh => { });

            Assert.IsFalse(handler.IsHandlerFor(null));
        }
 public void Handler_Invoke_CallsTarget()
 {
     var target = new Stub1();
     var handler = new WeakEventHandler<Stub1, EventArgs>(target.Handler, eh => { }).HandlerT;
     handler(this, new EventArgs());
     Assert.AreEqual(1, target.FireCount);
 }
        public void FindWeakT_NotWeak_ReturnsStrongHandler()
        {
            var s1 = new Stub1();
            EventHandler <EventArgs> handler = s1.Handler;

            s1.StubEvent += handler;
            Assert.AreSame(handler, WeakEventHandlerExtensions.FindWeak <EventArgs>(s1.StubEvent, handler));
        }
        public void MakeWeakT_FireEvent_SourceHandlerCalled()
        {
            var s1 = new Stub1();
            var weakEventHandler = WeakEventHandlerExtensions.MakeWeak <EventArgs>(s1.Handler, args => { });

            weakEventHandler(this, new EventArgs());
            Assert.AreEqual(1, s1.FireCount);
        }
        public void MakeWeakT_AlreadyWeak_ReturnsExisting()
        {
            var s1 = new Stub1();
            var weakEventHandler1 = WeakEventHandlerExtensions.MakeWeak <EventArgs>(s1.Handler, args => { });
            var weakEventHandler2 = WeakEventHandlerExtensions.MakeWeak <EventArgs>(weakEventHandler1, args => { });

            Assert.AreSame(weakEventHandler1, weakEventHandler2);
        }
        public void Handler_Invoke_CallsTarget()
        {
            var target  = new Stub1();
            var handler = new WeakEventHandler <Stub1, EventArgs>(target.Handler, eh => { }).HandlerT;

            handler(this, new EventArgs());
            Assert.AreEqual(1, target.FireCount);
        }
        public void FindWeakT_NullDelegate_ReturnsHandler()
        {
            var s1 = new Stub1();
            EventHandler <EventArgs> handler = s1.Handler;

            Assert.IsNull(s1.StubEvent);
            Assert.AreSame(handler, WeakEventHandlerExtensions.FindWeak <EventArgs>(s1.StubEvent, handler));
        }
        public void FindWeakT_StaticHandler_ReturnsStaticHandler()
        {
            var s1 = new Stub1();

            s1.StubEvent += (o, args) => { }; // Make s1.StubEvent!=null
            EventHandler <EventArgs> handler = StaticHandler;

            Assert.AreSame(handler, WeakEventHandlerExtensions.FindWeak <EventArgs>(s1.StubEvent, handler));
        }
        public void IsHandlerFor_TargetGC_False()
        {
            var target = new Stub1();
            var handler = new WeakEventHandler<Stub1, EventArgs>(target.Handler, eh => { });

            target = null;
            System.GC.Collect();

            Assert.IsFalse(handler.IsHandlerFor(new Stub1().Handler));
        }
        public void IsHandlerFor_TargetGC_False()
        {
            var target  = new Stub1();
            var handler = new WeakEventHandler <Stub1, EventArgs>(target.Handler, eh => { });

            target = null;
            System.GC.Collect();

            Assert.IsFalse(handler.IsHandlerFor(new Stub1().Handler));
        }
        public void MakeWeakT_DoesntPreventGC()
        {
            var           s1  = new Stub1();
            WeakReference ws1 = new WeakReference(s1);
            var           weakEventHandler1 = WeakEventHandlerExtensions.MakeWeak <EventArgs>(s1.Handler, args => { });

            s1 = null;
            GC.Collect();
            Assert.IsFalse(ws1.IsAlive);
        }
        public void FindWeakT_IsWeak_CallsIsHandlerFor()
        {
            var weakMock = new WeakEventHandlerMock <EventArgs>();
            var s1       = new Stub1();

            s1.StubEvent += weakMock.HandlerT;
            EventHandler <EventArgs> strongHandler = s1.Handler;
            EventHandler <EventArgs> weakHandler   = WeakEventHandlerExtensions.FindWeak <EventArgs>(s1.StubEvent, strongHandler);

            Assert.AreEqual(weakMock.HandlerT, weakHandler);
            Assert.AreSame(weakMock.LastIsHandlerFor, strongHandler);
        }
        public void Handler_Invoke_TargetGC_CallsUnregister()
        {
            bool unregister = false;
            var target = new Stub1();
            var handler = new WeakEventHandler<Stub1, EventArgs>(target.Handler, eh => { unregister = true; }).HandlerT;
            handler(this, new EventArgs());
            Assert.AreEqual(1, target.FireCount);

            target = null;
            System.GC.Collect();

            handler(this, new EventArgs());
            Assert.IsTrue(unregister);
        }
示例#17
0
        public void CreateShallowCopy_Source_OnlyWritablePropertiesCopied()
        {
            var source = new Stub1()
            {
                Property1 = 11,
                Property3 = 33
            };

            var actual = ObjectHelper.CreateShallowCopy(source) as Stub1;

            Assert.IsNotNull(actual);
            Assert.IsFalse(Object.ReferenceEquals(source, actual));
            Assert.AreEqual(11, actual.Property1);
            Assert.AreEqual(33, actual.Property3);
        }
        public void Handler_Invoke_TargetGC_CallsUnregister()
        {
            bool unregister = false;
            var  target     = new Stub1();
            var  handler    = new WeakEventHandler <Stub1, EventArgs>(target.Handler, eh => { unregister = true; }).HandlerT;

            handler(this, new EventArgs());
            Assert.AreEqual(1, target.FireCount);

            target = null;
            System.GC.Collect();

            handler(this, new EventArgs());
            Assert.IsTrue(unregister);
        }
        public void FindWeakT_NullHandler_Throws()
        {
            var s1 = new Stub1();

            WeakEventHandlerExtensions.FindWeak <EventArgs>(s1.StubEvent, null);
        }
        public void MakeWeakT_NullUnregister_Throws()
        {
            var s1 = new Stub1();

            WeakEventHandlerExtensions.MakeWeak <EventArgs>(s1.Handler, null);
        }
 public void IsHandlerFor_WrongObject_False()
 {
     var target = new Stub1();
     var handler = new WeakEventHandler<Stub1, EventArgs>(target.Handler, eh => { });
     Assert.IsFalse(handler.IsHandlerFor(new Stub1().Handler));
 }
 public void IsHandlerFor_CorrectHandler_True()
 {
     var target = new Stub1();
     var handler = new WeakEventHandler<Stub1, EventArgs>(target.Handler, eh => { });
     Assert.IsTrue(handler.IsHandlerFor(target.Handler));
 }
 public static Stub1 CreatePopulated()
 {
     var value = new Stub1
                     {
                         PublicInstanceString = "value",
                         PrivateInstanceString = "value",
                     };
     PublicStaticString = "value";
     PrivateStaticString = "value";
     return value;
 }