public void Reset() { _recipient = null; _recipientInternal = null; _recipientPrivate = null; _recipientReference = null; }
public void TestGarbageCollectionForNamedPrivateMethod() { Messenger.Reset(); _recipient = new TestRecipient(WeakActionTestCase.PrivateNamedMethod); _recipientReference = new WeakReference(_recipient); Assert.AreEqual(null, _recipient.Content); Assert.IsTrue(_recipientReference.IsAlive); const string message = "Hello world"; Messenger.Default.Send(message); Assert.AreEqual(message, _recipient.Content); _recipient = null; GC.Collect(); #if SILVERLIGHT // Cannot GC the internal method reference in Silverlight Assert.IsTrue(_recipientReference.IsAlive); _recipient = (TestRecipient)_recipientReference.Target; Messenger.Default.Unregister(_recipient); _recipient = null; GC.Collect(); Assert.IsFalse(_recipientReference.IsAlive); #else Assert.IsFalse(_recipientReference.IsAlive); #endif }
public void TestUnregisterOneAction() { const string testContentA1 = "abcd"; const string testContentB1 = "1234"; const string testContentA2 = "efgh"; const string testContentB2 = "5678"; Reset(); Messenger.Reset(); Action <TestMessageA> actionA1 = m => ReceivedContentStringA1 = m.Content; Messenger.Default.Register(this, actionA1); Messenger.Default.Register <TestMessageA>(this, m => ReceivedContentStringA2 = m.Content); Messenger.Default.Register <TestMessageB>(this, m => ReceivedContentStringB = m.Content); var externalRecipient = new TestRecipient(); externalRecipient.RegisterWith(Messenger.Default); Assert.AreEqual(null, ReceivedContentStringA1); Assert.AreEqual(null, ReceivedContentStringA2); Assert.AreEqual(null, ReceivedContentStringB); Assert.AreEqual(null, externalRecipient.ReceivedContentA); Assert.AreEqual(null, externalRecipient.ReceivedContentB); Messenger.Default.Send(new TestMessageA { Content = testContentA1 }); Messenger.Default.Send(new TestMessageB { Content = testContentB1 }); Assert.AreEqual(testContentA1, ReceivedContentStringA1); Assert.AreEqual(testContentA1, ReceivedContentStringA2); Assert.AreEqual(testContentB1, ReceivedContentStringB); Assert.AreEqual(testContentA1, externalRecipient.ReceivedContentA); Assert.AreEqual(testContentB1, externalRecipient.ReceivedContentB); Messenger.Default.Unregister(this, actionA1); Messenger.Default.Send(new TestMessageA { Content = testContentA2 }); Messenger.Default.Send(new TestMessageB { Content = testContentB2 }); Assert.AreEqual(testContentA1, ReceivedContentStringA1); Assert.AreEqual(testContentA2, ReceivedContentStringA2); Assert.AreEqual(testContentB2, ReceivedContentStringB); Assert.AreEqual(testContentA2, externalRecipient.ReceivedContentA); Assert.AreEqual(testContentB2, externalRecipient.ReceivedContentB); }
public void TestSendingToAllRecipients() { const string TestContent = "abcd"; Reset(); Messenger.Reset(); Messenger.Default.Register <TestMessage>(this, m => StringContent1 = m.Content); Messenger.Default.Register <TestMessage>(this, m => StringContent2 = m.Content); var externalRecipient = new TestRecipient(); externalRecipient.RegisterWith(Messenger.Default); Assert.AreEqual(null, StringContent1); Assert.AreEqual(null, StringContent2); Assert.AreEqual(null, externalRecipient.StringContent); Messenger.Default.Send(new TestMessage { Content = TestContent }); Assert.AreEqual(TestContent, StringContent1); Assert.AreEqual(TestContent, StringContent2); Assert.AreEqual(TestContent, externalRecipient.StringContent); }
public void BroadcastToOneType() { Messenger.Default = null;; var recipient1 = new TestRecipient(); var recipient2 = new TestRecipient(); var recipient3 = new TestRecipient2(); var recipient4 = this; string message1 = null; string message2 = null; string message3 = null; string message4 = null; Messenger.Default.Register <string>(recipient1, x => message1 = x); Messenger.Default.Register <string>(recipient2, x => message2 = x); Messenger.Default.Register <string>(recipient3, x => message3 = x); Messenger.Default.Register <string>(recipient3, x => message3 = x); Messenger.Default.Send <string, TestRecipient>("test1"); Assert.AreEqual("test1", message1, "message1"); Assert.AreEqual("test1", message2, "message2"); Assert.AreEqual("test1", message3, "message3"); Assert.IsNull(message4); Messenger.Default.Send <string, TestRecipient2>("test2"); Assert.AreEqual("test1", message1, "message1"); Assert.AreEqual("test1", message2, "message2"); Assert.AreEqual("test2", message3, "message3"); Assert.IsNull(message4); }
public void RequestResponseTest() { // Arrange var payload = new Payload { x = 2, y = 3 }; var identity = Guid.NewGuid().ToString(); var recipient = new TestRecipient(identity); this.messageBroker.AddRecipient(InProcessChannelFactoryUnitTests.messageType, recipient); // Act var response = this.messageBroker.Request(new RequestMessage(InProcessChannelFactoryUnitTests.messageType, payload)); // Assert Assert.IsNotNull(response); Assert.IsNotNull(response.Content); Assert.AreEqual(StatusCode.Success, response.StatusCode); Assert.AreEqual(recipient, response.Recipient); Assert.IsNull(response.ReasonPhrase); var content = (Payload)response.Content; Assert.AreEqual(payload.x * 10, content.x); Assert.AreEqual(payload.y * 100, content.y); }
public void TestSendingToAllRecipients() { const string TestContent = "abcd"; Reset(); Messenger.Reset(); Messenger.Default.Register<TestMessage>(this, m => StringContent1 = m.Content); Messenger.Default.Register<TestMessage>(this, m => StringContent2 = m.Content); var externalRecipient = new TestRecipient(); externalRecipient.RegisterWith(Messenger.Default); Assert.AreEqual(null, StringContent1); Assert.AreEqual(null, StringContent2); Assert.AreEqual(null, externalRecipient.StringContent); Messenger.Default.Send(new TestMessage { Content = TestContent }); Assert.AreEqual(TestContent, StringContent1); Assert.AreEqual(TestContent, StringContent2); Assert.AreEqual(TestContent, externalRecipient.StringContent); }
public void MemoryTest1() { var recipient = new TestRecipient(); Messenger.Default.Register <string>(recipient, x => recipient.OnMessage(new TestMessageBase(x))); GC.Collect(); Messenger.Default.Send("test"); Assert.AreEqual("test", recipient.Message); }
public void Broadcast() { string message = null; Messenger.Default.Register <TestMessageBase>(this, x => message = x.Message); TestRecipient recipient = new TestRecipient(); Messenger.Default.Register <TestMessageBase>(recipient, recipient.OnMessage); Messenger.Default.Send(new TestMessageBase("test")); Assert.AreEqual("test", message); Assert.AreEqual("test", recipient.Message); }
public void MultipleMessengers() { Messenger messenger1 = new Messenger(); Messenger messenger2 = new Messenger(); TestRecipient recipient1 = new TestRecipient(); TestRecipient recipient2 = new TestRecipient(); messenger1.Register <TestMessageBase>(recipient1, recipient1.OnMessage); messenger2.Register <TestMessageBase>(recipient2, recipient2.OnMessage); messenger1.Send(new TestMessageBase("test1")); Assert.AreEqual("test1", recipient1.Message); Assert.IsNull(null, recipient2.Message); messenger2.Send(new TestMessageBase("test2")); Assert.AreEqual("test1", recipient1.Message); Assert.AreEqual("test2", recipient2.Message); }
public void UnregisterWhileReceiving2() { string message = null; TestRecipient recipient = null; Action <string> handler = x => { recipient.RunCustomHandler(x); }; recipient = new TestRecipient(x => { Messenger.Default.Unregister <string>(recipient, handler); Messenger.Default.Send("new"); message = x; }); Messenger.Default.Register <string>(recipient, handler); Messenger.Default.Send("test"); Assert.AreEqual("test", message); }
public void TestGarbageCollectionForAnonymousMethod() { Messenger.Reset(); _recipient = new TestRecipient(WeakActionTestCase.AnonymousMethod); _recipientReference = new WeakReference(_recipient); Assert.AreEqual(null, _recipient.Content); Assert.IsTrue(_recipientReference.IsAlive); const string message = "Hello world"; Messenger.Default.Send(message); Assert.AreEqual(message, _recipient.Content); _recipient = null; GC.Collect(); Assert.IsFalse(_recipientReference.IsAlive); }
public void TestGarbageCollectionForNamedMethod() { Messenger.Reset(); _recipient = new TestRecipient(WeakActionTestCase.PublicNamedMethod); _recipientReference = new WeakReference(_recipient); Assert.AreEqual(null, _recipient.Content); Assert.IsTrue(_recipientReference.IsAlive); const string message = "Hello world"; Messenger.Default.Send(message); Assert.AreEqual(message, _recipient.Content); _recipient = null; GC.Collect(); Assert.IsFalse(_recipientReference.IsAlive); }
public void TestOldMessengerRegisteringForMessageBaseWhileSending() { Messenger.Reset(); TestRecipient.Reset(); var list = new List <TestRecipient2>(); for (var index = 0; index < 10; index++) { list.Add(new TestRecipient4()); } Messenger.Default.Broadcast(new GenericMessage <string>(TestContentString)); Assert.AreEqual(null, TestRecipient.LastReceivedString); Assert.AreEqual(0, TestRecipient.ReceivedStringMessages); Messenger.Default.Broadcast(new GenericMessage <string>(TestContentStringNested)); Assert.AreEqual(TestContentStringNested, TestRecipient.LastReceivedString); Assert.AreEqual(20, TestRecipient.ReceivedStringMessages); }
public void TestMessengerRegisteringForMessageBaseWhileSending() { MessageService.Reset(); TestRecipient.Reset(); var list = new List <TestRecipient2>(); for (var index = 0; index < 10; index++) { list.Add(new TestRecipient2(true)); } MessageService.Default.Send(new Message <string>(TestContentString)); Assert.AreEqual(null, TestRecipient.LastReceivedString); Assert.AreEqual(0, TestRecipient.ReceivedStringMessages); MessageService.Default.Send(new Message <string>(TestContentStringNested)); Assert.AreEqual(TestContentStringNested, TestRecipient.LastReceivedString); Assert.AreEqual(10, TestRecipient.ReceivedStringMessages); }
public void DeletingRecipient() { DeletingRecipientRecipient1 = new TestRecipient(); DeletingRecipientRecipient2 = new TestRecipient(); string message1 = null; string message2 = null; Messenger.Default.Register <string>(DeletingRecipientRecipient1, x => message1 = x); Messenger.Default.Register <string>(DeletingRecipientRecipient2, x => message2 = x); Messenger.Default.Send("test"); Assert.AreEqual("test", message1); Assert.AreEqual("test", message2); DeletingRecipientRecipient1 = null; GC.Collect(); Messenger.Default.Send("test2"); Assert.AreEqual("test", message1); Assert.AreEqual("test2", message2); DeletingRecipientRecipient2 = null; GC.Collect(); Messenger.Default.Send("test3"); Assert.AreEqual("test", message1); Assert.AreEqual("test2", message2); }
public void RegisterUnregisterOneRecipient() { string message1 = null; string message2 = null; string message3 = null; Messenger.Default.Register <TestMessageBase>(this, x => message1 = x.Message); Messenger.Default.Register <TestMessageBase>(this, x => message2 = x.Message); Messenger.Default.Register <TestMessage>(this, x => message3 = (string)x.Sender); string externalMessage1 = null; string externalMessage2 = null; var externalRecipient = new TestRecipient(); Messenger.Default.Register <TestMessageBase>(externalRecipient, x => externalMessage1 = x.Message); Messenger.Default.Register <TestMessage>(externalRecipient, x => externalMessage2 = (string)x.Sender); Messenger.Default.Send(new TestMessageBase("test1")); Messenger.Default.Send(new TestMessage("test2", "test2")); Assert.AreEqual("test1", message1); Assert.AreEqual("test1", message2); Assert.AreEqual("test2", message3); Assert.AreEqual("test1", externalMessage1); Assert.AreEqual("test2", externalMessage2); Messenger.Default.Unregister(this); Messenger.Default.Send(new TestMessageBase("newTest1")); Messenger.Default.Send(new TestMessage("newTest2", "newTest2")); Assert.AreEqual("test1", message1); Assert.AreEqual("test1", message2); Assert.AreEqual("test2", message3); Assert.AreEqual("newTest1", externalMessage1); Assert.AreEqual("newTest2", externalMessage2); }
public void DeletingRecipient() { Action alloc = () => { DeletingRecipientRecipient1 = new TestRecipient(); DeletingRecipientRecipient2 = new TestRecipient(); Messenger.Default.Register <string>(DeletingRecipientRecipient1, x => DeletingRecipientMessage1 = x); Messenger.Default.Register <string>(DeletingRecipientRecipient2, x => DeletingRecipientMessage2 = x); }; alloc(); Messenger.Default.Send("test"); Assert.AreEqual("test", DeletingRecipientMessage1); Assert.AreEqual("test", DeletingRecipientMessage2); DeletingRecipientRecipient1 = null; GC.Collect(); Messenger.Default.Send("test2"); Assert.AreEqual("test", DeletingRecipientMessage1); Assert.AreEqual("test2", DeletingRecipientMessage2); DeletingRecipientRecipient2 = null; GC.Collect(); Messenger.Default.Send("test3"); Assert.AreEqual("test", DeletingRecipientMessage1); Assert.AreEqual("test2", DeletingRecipientMessage2); }