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); }
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; }