public void TestDoubleSubscribeRemove() { TargetClass target = new TargetClass(); MulticastWeakDelegate <Action> testInst = new MulticastWeakDelegate <Action>(); testInst.Add(target.TestMethod); testInst.Add(target.TestMethod); testInst.Remove(target.TestMethod); testInst.GetDelegate()(); Assert.AreEqual(1, target.CallCount); }
public void TestCallStrongTwice() { int callCount = 0; MulticastWeakDelegate <Action> testInst = new MulticastWeakDelegate <Action>(); testInst.Add(() => callCount++); testInst.Add(() => callCount++); var d = testInst.GetDelegate(); Assert.IsNotNull(d); d(); Assert.AreEqual(2, callCount); }
private void Subscribe(MulticastWeakDelegate <Action> weakDeleg) { TargetClass target = new TargetClass(); weakDeleg.Add(new Action(target.TestMethod)); }