public void Can_Send_and_Receive_messages_using_QueueNamePrefix()
        {
            QueueNames.SetQueuePrefix("site1.");

            Assert.That(QueueNames.TopicIn, Is.EqualTo("site1.mq:topic:in"));
            Assert.That(QueueNames.TopicOut, Is.EqualTo("site1.mq:topic:out"));

            using (var mqServer = CreateMqServer())
            {
                mqServer.RegisterHandler <HelloIntro>(m =>
                                                      new HelloIntroResponse {
                    Result = $"Hello, {m.GetBody().Name}!"
                });
                mqServer.Start();

                using (var mqClient = mqServer.CreateMessageQueueClient())
                {
                    var request = new HelloIntro {
                        Name = "World"
                    };
                    var requestInq = MessageFactory.Create(request).ToInQueueName();
                    Assert.That(requestInq, Is.EqualTo("site1.mq:HelloIntro.inq"));

                    mqClient.Publish(request);

                    var responseInq = QueueNames <HelloIntroResponse> .In;
                    Assert.That(responseInq, Is.EqualTo("site1.mq:HelloIntroResponse.inq"));

                    IMessage <HelloIntroResponse> responseMsg = mqClient.Get <HelloIntroResponse>(responseInq);
                    mqClient.Ack(responseMsg);
                    Assert.That(responseMsg.GetBody().Result, Is.EqualTo("Hello, World!"));
                }
            }

            QueueNames.SetQueuePrefix("");
        }
コード例 #2
0
 public object Any(HelloIntro request)
 {
     return new HelloIntroResponse { Result = "Hello, {0}!".Fmt(request.Name) };
 }
コード例 #3
0
 public object Any(HelloIntro request)
 {
     return(new HelloIntroResponse {
         Result = "Hello, {0}!".Fmt(request.Name)
     });
 }