public void TestUnregister() { Assert.AreEqual(false, EventBetter.Unlisten <TestMessage>(this)); Assert.AreEqual(false, EventBetter.Raise(new TestMessage())); EventBetter.Listen(this, (TestMessage o) => InstanceHandle(null, null)); Assert.AreEqual(true, EventBetter.Raise(new TestMessage())); Assert.AreEqual(true, EventBetter.Unlisten <TestMessage>(this)); Assert.AreEqual(false, EventBetter.Raise(new TestMessage())); EventBetter.Listen(this, (TestMessage o) => InstanceHandle(null, null)); EventBetter.Listen(this, (TestMessage o) => InstanceHandle(null, null)); EventBetter.Listen(this, (TestMessage o) => InstanceHandle(null, null)); EventBetter.Listen(this, (TestMessage o) => InstanceHandle(null, null)); Assert.AreEqual(true, EventBetter.Raise(new TestMessage())); Assert.AreEqual(true, EventBetter.Unlisten <TestMessage>(this)); Assert.AreEqual(false, EventBetter.Unlisten <TestMessage>(this)); Assert.AreEqual(false, EventBetter.Unlisten <TestMessage>(this)); Assert.AreEqual(false, EventBetter.Unlisten <TestMessage>(this)); Assert.AreEqual(false, EventBetter.Unlisten <TestMessage>(this)); Assert.AreEqual(false, EventBetter.Raise(new TestMessage())); EventBetter.Listen(this, (TestMessage o) => InstanceHandle(null, null)); Assert.AreEqual(true, EventBetter.Unlisten <TestMessage>(this)); Assert.AreEqual(false, EventBetter.Unlisten <TestMessage>(this)); Assert.AreEqual(false, EventBetter.Unlisten <TestMessage>(this)); Assert.AreEqual(false, EventBetter.Raise(new TestMessage())); }
public void TestNestedMessedUp() { int nestedCalls = 0; int totalInvocations = 0; int dummyMessage2Invocations = 0; EventBetter.Listen(this, (TestMessage2 o) => { InstanceHandle(null, null); ++dummyMessage2Invocations; EventBetter.Unlisten <TestMessage>(this); }); int dummyMessage3Invocations = 0; EventBetter.Listen(this, (TestMessage3 o) => { InstanceHandle(null, null); ++dummyMessage3Invocations; EventBetter.Unlisten <TestMessage3>(this); EventBetter.Raise(new TestMessage()); }); EventBetter.Listen(this, (TestMessage o) => { InstanceHandle(null, null); ++totalInvocations; ++nestedCalls; if (nestedCalls >= 10) { EventBetter.Raise(new TestMessage2()); EventBetter.Raise(new TestMessage3()); EventBetter.Raise(new TestMessage2()); EventBetter.Raise(new TestMessage3()); EventBetter.Raise(new TestMessage2()); EventBetter.Raise(new TestMessage3()); } EventBetter.Raise(new TestMessage()); }); EventBetter.Raise(new TestMessage()); Assert.AreEqual(10, totalInvocations); Assert.AreEqual(3, dummyMessage2Invocations); Assert.AreEqual(1, dummyMessage3Invocations); }
public void TestIfActiveAndEnabled() { int count = 0; EventBetter.Listen(this, (TestMessage o) => ++ count); Assert.IsTrue(EventBetter.Raise(new TestMessage())); Assert.AreEqual(1, count); enabled = false; Assert.IsTrue(EventBetter.Raise(new TestMessage())); Assert.AreEqual(2, count); enabled = true; gameObject.SetActive(false); Assert.IsTrue(EventBetter.Raise(new TestMessage())); Assert.AreEqual(3, count); gameObject.SetActive(true); Assert.IsTrue(EventBetter.Unlisten <TestMessage>(this)); Assert.IsFalse(EventBetter.Raise(new TestMessage())); Assert.AreEqual(3, count); EventBetter.Listen(this, (TestMessage o) => ++ count, exculdeInactive: true); Assert.IsTrue(EventBetter.Raise(new TestMessage())); Assert.AreEqual(4, count); enabled = false; Assert.IsFalse(EventBetter.Raise(new TestMessage())); Assert.AreEqual(4, count); enabled = true; Assert.IsTrue(EventBetter.Raise(new TestMessage())); Assert.AreEqual(5, count); gameObject.SetActive(false); Assert.IsFalse(EventBetter.Raise(new TestMessage())); Assert.AreEqual(5, count); gameObject.SetActive(true); Assert.IsTrue(EventBetter.Raise(new TestMessage())); Assert.AreEqual(6, count); }