예제 #1
0
        internal static void TestMessages(AbstractClient C)
        {
            C.QueueMessage(P1);
            C.QueueMessage(P2);

            var Messages = C.GetMessages();

            C.QueueMessage(null);
            Assert.That(Messages.Count == 2, "Dummy client's message adding error! Null message should not be queued");
            Assert.That(Messages.Contains(P2), "Dummy client's message adding error!");
            Assert.False(Messages.Contains(P3), "Dummy client's message checking error!");

            // External modification must not affect internal operation
            Messages.Enqueue(P3);
            Assert.False(C.GetMessages().Contains(P3), "Dummy client's GetMessages should not return the internal list!");
        }
예제 #2
0
        internal static void TestMessageConcurrency(AbstractClient C)
        {
            const int Iterations = 10000;

            new Thread(new ThreadStart(() =>
            {
                for (int i = 0; i < Iterations; i++)
                {
                    C.QueueMessage(RandomPayload());
                }
            })).Start();
            new Thread(new ThreadStart(() =>
            {
                for (int i = 0; i < Iterations; i++)
                {
                    C.QueueMessage(RandomPayload());
                }
            })).Start();
            // No exception should be thrown
            Assert.Pass();
        }
예제 #3
0
        internal static void TestMessages(AbstractClient C)
        {
            C.QueueMessage(P1);
            C.QueueMessage(P2);

            var Messages = C.GetMessages();
            C.QueueMessage(null);
            Assert.That(Messages.Count == 2, "Dummy client's message adding error! Null message should not be queued");
            Assert.That(Messages.Contains(P2), "Dummy client's message adding error!");
            Assert.False(Messages.Contains(P3), "Dummy client's message checking error!");

            // External modification must not affect internal operation
            Messages.Enqueue(P3);
            Assert.False(C.GetMessages().Contains(P3), "Dummy client's GetMessages should not return the internal list!");
        }
예제 #4
0
 internal static void TestMessageConcurrency(AbstractClient C)
 {
     const int Iterations = 10000;
     new Thread(new ThreadStart(() =>
     {
         for (int i = 0; i < Iterations; i++)
         {
             C.QueueMessage(RandomPayload());
         }
     })).Start();
     new Thread(new ThreadStart(() =>
     {
         for (int i = 0; i < Iterations; i++)
         {
             C.QueueMessage(RandomPayload());
         }
     })).Start();
     // No exception should be thrown
     Assert.Pass();
 }