Example #1
0
        public void Start_Consume_Whole_Action_with_Mulit_Thread_Diff_Consumer_Test()
        {
            int consumeCount = 0;

            for (int i = 0; i < TestConfig.consumerCount; i++)
            {
                new TaskFactory().StartNew(() =>
                {
                    var body = System.Text.Encoding.UTF8.GetBytes("Hello World" + i);
                    CamoranConsumer consumer = null;
                    consumer = CreateConsumer(Guid.NewGuid())
                               .SubscribeTopic("topic1")
                               .SetMessageBody(body)
                               .RegisteConsumeAction((response) =>
                    {
                        lock (obj)
                        {
                            consumeCount++;
                            var responseBody     = System.Text.Encoding.UTF8.GetString(response.Body);
                            var queueMessageBody = System.Text.Encoding.UTF8.GetString(response.QueueMeesageBody);
                            Console.WriteLine(responseBody
                                              + "     "
                                              + consumeCount
                                              + " QueueMessageId:" + response.QueueMessageId
                                              + " QueueMessageBody:" + queueMessageBody
                                              + "From Queue Id:" + response.FromQueueId
                                              + "Consumed by :" + response.SenderId
                                              );
                        }
                    });
                    consumer.ConnectToServer();
                    consumer.Start();
                });
            }
            Console.ReadLine();
            Assert.AreEqual(consumeCount, TestConfig.Producer_Send_Count);
        }