コード例 #1
0
        public void TestStart()
        {
            SimplePriorityMessageDispatchChannel channel = new SimplePriorityMessageDispatchChannel();

            channel.Start();
            Assert.IsTrue(channel.Running == true);
        }
コード例 #2
0
        public void TestRemoveAll()
        {
            SimplePriorityMessageDispatchChannel channel = new SimplePriorityMessageDispatchChannel();

            MessageDispatch dispatch1 = new MessageDispatch();
            MessageDispatch dispatch2 = new MessageDispatch();
            MessageDispatch dispatch3 = new MessageDispatch();

            Message message1 = new Message();
            Message message2 = new Message();
            Message message3 = new Message();

            message1.Priority = 1;
            message2.Priority = 2;
            message3.Priority = 3;

            dispatch1.Message = message1;
            dispatch2.Message = message2;
            dispatch3.Message = message3;

            channel.Enqueue(dispatch1);
            channel.Enqueue(dispatch2);
            channel.Enqueue(dispatch3);

            channel.Start();
            Assert.IsTrue(channel.Running == true);
            Assert.IsTrue(channel.Empty == false);
            Assert.IsTrue(channel.Count == 3);
            Assert.IsTrue(channel.RemoveAll().Length == 3);
            Assert.IsTrue(channel.Count == 0);
            Assert.IsTrue(channel.Empty == true);
        }
コード例 #3
0
        public void TestCtor()
        {
            SimplePriorityMessageDispatchChannel channel = new SimplePriorityMessageDispatchChannel();

            Assert.IsTrue(channel.Running == false);
            Assert.IsTrue(channel.Empty == true);
            Assert.IsTrue(channel.Count == 0);
            Assert.IsTrue(channel.Closed == false);
        }
コード例 #4
0
        public void TestDequeue()
        {
            SimplePriorityMessageDispatchChannel channel = new SimplePriorityMessageDispatchChannel();

            MessageDispatch dispatch1 = new MessageDispatch();
            MessageDispatch dispatch2 = new MessageDispatch();
            MessageDispatch dispatch3 = new MessageDispatch();

            Message message1 = new Message();
            Message message2 = new Message();
            Message message3 = new Message();

            message1.Priority = 1;
            message2.Priority = 2;
            message3.Priority = 3;

            dispatch1.Message = message1;
            dispatch2.Message = message2;
            dispatch3.Message = message3;

            channel.Start();
            Assert.IsTrue(channel.Running == true);

            DateTime timeStarted = DateTime.Now;

            Assert.IsTrue(channel.Dequeue(TimeSpan.FromMilliseconds(1000)) == null);

            DateTime timeFinished = DateTime.Now;

            TimeSpan elapsed = timeFinished - timeStarted;

            Assert.IsTrue(elapsed.TotalMilliseconds >= 999);

            channel.Enqueue(dispatch1);
            channel.Enqueue(dispatch2);
            channel.Enqueue(dispatch3);
            Assert.IsTrue(channel.Empty == false);
            Assert.IsTrue(channel.Count == 3);
            Assert.IsTrue(channel.Dequeue(TimeSpan.FromMilliseconds(Timeout.Infinite)) == dispatch3);
            Assert.IsTrue(channel.Dequeue(TimeSpan.Zero) == dispatch2);
            Assert.IsTrue(channel.Dequeue(TimeSpan.FromMilliseconds(1000)) == dispatch1);

            Assert.IsTrue(channel.Count == 0);
            Assert.IsTrue(channel.Empty == true);
        }
コード例 #5
0
        public void TestEnqueue()
        {
            SimplePriorityMessageDispatchChannel channel = new SimplePriorityMessageDispatchChannel();
            MessageDispatch dispatch1 = new MessageDispatch();
            MessageDispatch dispatch2 = new MessageDispatch();

            Assert.IsTrue(channel.Empty == true);
            Assert.IsTrue(channel.Count == 0);

            channel.Enqueue(dispatch1);

            Assert.IsTrue(channel.Empty == false);
            Assert.IsTrue(channel.Count == 1);

            channel.Enqueue(dispatch2);

            Assert.IsTrue(channel.Empty == false);
            Assert.IsTrue(channel.Count == 2);
        }
コード例 #6
0
        public void TestPeek()
        {
            SimplePriorityMessageDispatchChannel channel = new SimplePriorityMessageDispatchChannel();
            MessageDispatch dispatch1 = new MessageDispatch();
            MessageDispatch dispatch2 = new MessageDispatch();

            Message message1 = new Message();
            Message message2 = new Message();

            message1.Priority = 2;
            message2.Priority = 1;

            dispatch1.Message = message1;
            dispatch2.Message = message2;

            Assert.IsTrue(channel.Empty == true);
            Assert.IsTrue(channel.Count == 0);

            channel.EnqueueFirst(dispatch1);

            Assert.IsTrue(channel.Empty == false);
            Assert.IsTrue(channel.Count == 1);

            channel.EnqueueFirst(dispatch2);

            Assert.IsTrue(channel.Empty == false);
            Assert.IsTrue(channel.Count == 2);

            Assert.IsTrue(channel.Peek() == null);

            channel.Start();

            Assert.IsTrue(channel.Peek() == dispatch1);
            Assert.IsTrue(channel.DequeueNoWait() == dispatch1);
            Assert.IsTrue(channel.Peek() == dispatch2);
            Assert.IsTrue(channel.DequeueNoWait() == dispatch2);
        }
コード例 #7
0
        public void TestEnqueueFront()
        {
            SimplePriorityMessageDispatchChannel channel = new SimplePriorityMessageDispatchChannel();
            MessageDispatch dispatch1 = new MessageDispatch();
            MessageDispatch dispatch2 = new MessageDispatch();

            channel.Start();

            Assert.IsTrue(channel.Empty == true);
            Assert.IsTrue(channel.Count == 0);

            channel.EnqueueFirst(dispatch1);

            Assert.IsTrue(channel.Empty == false);
            Assert.IsTrue(channel.Count == 1);

            channel.EnqueueFirst(dispatch2);

            Assert.IsTrue(channel.Empty == false);
            Assert.IsTrue(channel.Count == 2);

            Assert.IsTrue(channel.DequeueNoWait() == dispatch2);
            Assert.IsTrue(channel.DequeueNoWait() == dispatch1);
        }