예제 #1
0
        public void TestCantStartQueueTwice()
        {
            using (MessageQueue queue = new MessageQueue())
            {
                queue.StartInAnotherThread();

                try
                {
                    queue.StartInCurrentThread();
                    Assert.Fail();
                }
                catch (InvalidOperationException)
                {
                }

                try
                {
                    queue.ProcessQueue();
                    Assert.Fail();
                }
                catch (InvalidOperationException)
                {
                }

                try
                {
                    queue.StartInAnotherThread();
                    Assert.Fail();
                }
                catch (InvalidOperationException)
                {
                }
            }
        }
예제 #2
0
        public void TestProcessQueue()
        {
            using (MessageQueue queue = new MessageQueue())
            {
                object received = null;
                queue.MessageReceived += delegate(object sender, MessageQueueEventArgs e)
                {
                    received = e.Message;
                };

                object message = new object();
                queue.Post(message);

                queue.ProcessQueue();
                Assert.AreSame(message, received);
            }
        }
예제 #3
0
        public void TestCantStartQueueTwice()
        {
            using (MessageQueue queue = new MessageQueue())
            {
                queue.StartInAnotherThread();

                try
                {
                    queue.StartInCurrentThread();
                    Assert.Fail();
                }
                catch (InvalidOperationException)
                {
                }

                try
                {
                    queue.ProcessQueue();
                    Assert.Fail();
                }
                catch (InvalidOperationException)
                {
                }

                try
                {
                    queue.StartInAnotherThread();
                    Assert.Fail();
                }
                catch (InvalidOperationException)
                {
                }
            }
        }
예제 #4
0
        public void TestProcessQueue()
        {
            using (MessageQueue queue = new MessageQueue())
            {

                object received = null;
                queue.MessageReceived += delegate(object sender, MessageQueueEventArgs e)
                {
                    received = e.Message;
                };

                object message = new object();
                queue.Post(message);

                queue.ProcessQueue();
                Assert.AreSame(message, received);
            }
        }