public void Bus_MakeRpcCall_RejectedWithDataByHandler() { ResponseMessage replyData = new ResponseMessage { Code = 234 }; using (IBus bus = new RabbitMQBus(c => c.SetReceiveSelfPublish())) { using (ISubscriber subscriber = bus.CreateSubscriber(c => c.UseTransactionalDelivery())) { subscriber.Subscribe((RequestMessage m) => { throw new RejectMessageException { ReplyData = replyData }; }); subscriber.Open(); using (IRpcPublisher rpcPublisher = bus.CreateRpcPublisher()) { try { rpcPublisher.Send<RequestMessage, ResponseMessage>(new RequestMessage { Data = "Hello, world!" }, TimeSpan.FromSeconds(10)); Assert.Fail("No exception"); } catch (RpcCallException ex) { ex.Reason.Should().Be(RpcFailureReason.Reject); ex.ReplyData.Should().BeOfType<ResponseMessage>(); ((ResponseMessage)ex.ReplyData).ShouldBeEquivalentTo(replyData); } } } } }