public async Task Should_Be_Able_To_Subscibe_To_Pure_Json_Message()
        {
            var conventions = new NamingConventions();

            using (var client = TestClientFactory.CreateNormal(ioc => ioc.AddSingleton <INamingConventions>(c => conventions)))
            {
                /* Setup */
                var tcs          = new TaskCompletionSource <BasicMessage>();
                var subscription = client.SubscribeAsync <BasicMessage>((message, context) =>
                {
                    tcs.TrySetResult(message);
                    return(Task.FromResult(true));
                });
                var uniqueValue = Guid.NewGuid().ToString();
                var jsonMsg     = JsonConvert.SerializeObject(new BasicMessage {
                    Prop = uniqueValue
                });

                /* Test */
                TestChannel.BasicPublish(
                    conventions.ExchangeNamingConvention(typeof(BasicMessage)),
                    conventions.QueueNamingConvention(typeof(BasicMessage)),
                    true,
                    null,
                    Encoding.UTF8.GetBytes(jsonMsg));
                await tcs.Task;

                /* Assert */
                Assert.Equal(uniqueValue, tcs.Task.Result.Prop);
            }
        }