using System; #if NUNIT using NUnit.Framework; using TestClassAttribute = NUnit.Framework.TestFixtureAttribute; using TestMethodAttribute = NUnit.Framework.TestCaseAttribute; #else using Microsoft.VisualStudio.TestTools.UnitTesting; #endif using Ooui; namespace Tests { [TestClass] public class MessageSendTests { [TestMethod] public void SendTriggers () { var b = new Button (); var sendCount = 0; b.MessageSent += m => { if (m.Key == "test") sendCount++; }; b.Send (Message.Event (b.Id, "test")); Assert.AreEqual (1, sendCount); } [TestMethod] public void ChildSendTriggers () { var p = new Div (); var b = new Button (); p.AppendChild (b); var sendCount = 0; void HandleMessage (Message m) { if (m.Key == "test") sendCount++; }; p.MessageSent += HandleMessage; b.Send (Message.Event (b.Id, "test")); Assert.AreEqual (1, sendCount); } [TestMethod] public void OldChildSendDoesntTrigger () { var p = new Div (); var b = new Button (); p.AppendChild (b); var sendCount = 0; void HandleMessage (Message m) { if (m.Key == "test") sendCount++; }; p.MessageSent += HandleMessage; b.Send (Message.Event (b.Id, "test")); p.RemoveChild (b); b.Send (Message.Event (b.Id, "test")); Assert.AreEqual (1, sendCount); } } }