public void ListenerRaisesEventsOnReceivingCommands()
        {
            // Arrange
            using (var service = new BlockingReceiver <int>())
                using (var listener = new TestListener())
                    using (var sender = listener.Sender())
                    {
                        var messages = new List <ReceivedEventArgs>();
                        listener.Received += (o, e) => messages.Add(e);

                        service.SubscribeToCommand(listener);

                        // Act
                        sender.PublishCommand(3);
                        service.Next();

                        // Assert
                        var message = messages.Single();
                        Assert.Equal(service.GetType(), message.HandledBy);
                        Assert.Equal("Int32", message.Topic);
                        Assert.Equal("3", message.Message);
                    }
        }