public virtual void Test()
 {
     var expected = new Collection4(new object[] {"PING", true, 42});
     var recipient = new MessageCollector
         ();
     var server = OpenServerWith(recipient);
     try
     {
         var client = OpenClient("client", server);
         try
         {
             var sender = MessageSender(client);
             SendAll(expected, sender);
         }
         finally
         {
             client.Close();
         }
     }
     finally
     {
         server.Close();
     }
     Assert.AreEqual(expected.ToString(), recipient.messages.ToString());
 }
Example #2
0
 private void AssertReplyBehavior(IClientWaitLogic clientWaitLogic
     )
 {
     var collector1 = new MessageCollector
         ();
     var collector2 = new MessageCollector
         ();
     var server = OpenServerWith(new AutoReplyRecipient
         ());
     try
     {
         var client1 = OpenClient("client1", server);
         try
         {
             SetMessageRecipient(client1, collector1);
             var sender1 = MessageSender(client1);
             var client2 = OpenClient("client2", server);
             try
             {
                 SetMessageRecipient(client2, collector2);
                 var sender2 = MessageSender(client2);
                 SendEvenOddMessages(sender1, sender2);
                 clientWaitLogic.Wait(client1, client2);
                 try
                 {
                     // Give the message processor thread time to dispatch the message.
                     Thread.Sleep(100);
                 }
                 catch (Exception e)
                 {
                     Runtime.PrintStackTrace(e);
                 }
                 Assert.AreEqual("[reply: 0, reply: 2, reply: 4, reply: 6, reply: 8]", collector1.
                     messages.ToString());
                 Assert.AreEqual("[reply: 1, reply: 3, reply: 5, reply: 7, reply: 9]", collector2.
                     messages.ToString());
             }
             finally
             {
                 client2.Close();
             }
         }
         finally
         {
             client1.Close();
         }
     }
     finally
     {
         server.Close();
     }
 }