public void TestAttachAndDetach3() { var h = new EventHost (); Assert.IsFalse (h.HasMyEvent2, "#1"); string value = null; // FromEvent<TDelegate,TEventArgs> (Func<TDelegate> addHandler, Func<TDelegate> removeHandler) var source = Observable.FromEvent<MyEventHandler2, MyEventArgs> ( ev => h.MyEvent2 += ev, ev => h.MyEvent2 -= ev); Assert.IsFalse (h.HasMyEvent2, "#2"); // not subscribed yet var dis = source.Subscribe (v => value = v.Value); Assert.IsTrue (h.HasMyEvent2, "#3"); h.FireMyEvent2 ("foo"); Assert.AreEqual ("foo", value, "#4"); dis.Dispose (); // unsubscribe event handler Assert.IsFalse (h.HasMyEvent2, "#6"); }
public void TestAttachAndDetach3() { var h = new EventHost(); Assert.IsFalse(h.HasMyEvent2, "#1"); string value = null; // FromEvent<TDelegate,TEventArgs> (Func<TDelegate> addHandler, Func<TDelegate> removeHandler) var source = Observable.FromEvent <MyEventHandler2, MyEventArgs> ( ev => h.MyEvent2 += ev, ev => h.MyEvent2 -= ev); Assert.IsFalse(h.HasMyEvent2, "#2"); // not subscribed yet var dis = source.Subscribe(v => value = v.Value); Assert.IsTrue(h.HasMyEvent2, "#3"); h.FireMyEvent2("foo"); Assert.AreEqual("foo", value, "#4"); dis.Dispose(); // unsubscribe event handler Assert.IsFalse(h.HasMyEvent2, "#6"); }