public void EventCanBeReceived() { using (var sut = new RabbitBusProvider(BusOptions)) { sut.EnsureConnection(); var queue = GetUniqueQueue(); var topic = GetUniqueTopic(); const string jsonMessage = "Something"; EventMessage passedMessage = null; var waitHandle = new ManualResetEvent(false); EventReceivedCallback eventReceivedCallback = (message) => { passedMessage = message; waitHandle.Set(); }; sut.BasicTopicBind(queue, topic); sut.BasicConsume(queue, eventReceivedCallback); SendRabbitEventToExchange(topic, jsonMessage); waitHandle.WaitOne(2000).ShouldBeTrue(); passedMessage.ShouldNotBeNull(); passedMessage.JsonMessage.ShouldBe(jsonMessage); } }