public void Validate_GivenAllPropertiesAreValid_ExpectValidationSuccess()
            {
                var model = new CreateUser.Model {
                    FirstName = "first-name", LastName = "last-name", EmailAddress = "*****@*****.**"
                };
                var validator = new CreateUser.Validator();
                var result    = validator.Validate(model);

                Assert.True(result.IsValid);
            }
            public void Validate_GivenEmailAddressIsNull_ExpectValidationFailure()
            {
                var model = new CreateUser.Model {
                    FirstName = "first-name", LastName = "last-name", EmailAddress = null
                };
                var validator = new CreateUser.Validator();
                var result    = validator.Validate(model);

                Assert.False(result.IsValid);
                Assert.Contains(result.Errors, x => x.PropertyName == "EmailAddress");
            }
            public void Validate_GivenFirstNameIsNull_ExpectValidationFailure()
            {
                var cmd = new CreateUser.Model {
                    FirstName = null, LastName = "last-name", EmailAddress = "*****@*****.**"
                };
                var validator = new CreateUser.Validator();
                var result    = validator.Validate(cmd);

                Assert.False(result.IsValid);
                Assert.Contains(
                    result.Errors,
                    failure => failure.PropertyName == "FirstName");
            }