public void should_use_registered_validator()
            {
                var registry = new MessageValidatorRegistry();

                registry.Register(new BooValidator());

                var payload = new Boo {
                    Num = 3, Str = "this"
                };

                registry.Invoking(r => r.Validate(new Message <Boo>("label".ToMessageLabel(), payload))).
                ShouldThrow <MessageValidationException>();
            }
            public void should_replace_validator()
            {
                var registry = new MessageValidatorRegistry();

                registry.Register(new BooValidator());

                var stubValidator = new Mock <IMessageValidatorOf <Boo> >();

                stubValidator.Setup(v => v.Validate(It.IsAny <IMessage>())).
                Returns(ValidationResult.Valid);

                registry.Register(stubValidator.Object);

                var payload = new Boo {
                    Num = 3, Str = "this"
                };

                registry.Invoking(r => r.Validate(new Message <Boo>("label".ToMessageLabel(), payload))).
                ShouldNotThrow();

                stubValidator.Verify(v => v.Validate(It.IsAny <IMessage>()), Times.Once);
            }