diff --git a/Tests/MessageSendTests.cs b/Tests/MessageSendTests.cs new file mode 100644 index 0000000..8c239db --- /dev/null +++ b/Tests/MessageSendTests.cs @@ -0,0 +1,55 @@ +using System; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +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); + } + } +}