示例#1
0
            public void IsValidWhen_Value_MatchesPreviousSpelling_CaseInsensitively()
            {
                var model = new UpdateEmailValueForm
                {
                    Value          = "*****@*****.**",
                    PersonUserName = string.Empty
                };
                var emailAddress = new EmailAddress
                {
                    Value  = "*****@*****.**",
                    Person = new Person {
                        User = new User {
                            Name = model.PersonUserName
                        }
                    },
                };
                var entities = new Mock <IQueryEntities>(MockBehavior.Strict).Initialize();

                entities.Setup(m => m.Query <EmailAddress>()).Returns(new[] { emailAddress }.AsQueryable);
                var validator = new UpdateEmailValueValidator(entities.Object);
                var results   = validator.Validate(model);
                var error     = results.Errors.SingleOrDefault(e => e.PropertyName == PropertyName);

                error.ShouldBeNull();
            }
示例#2
0
            public void IsValidWhen_Number_MatchesEmail_ForPersonUserName()
            {
                const string personUserName = "******";
                const string emailValue     = "*****@*****.**";
                var          form           = new UpdateEmailValueForm
                {
                    PersonUserName = personUserName,
                    Number         = 13,
                    Value          = emailValue.ToUpper(),
                };
                var emailAddress = new EmailAddress
                {
                    Value  = emailValue.ToLower(),
                    Number = form.Number,
                    Person = new Person {
                        User = new User {
                            Name = form.PersonUserName,
                        }
                    }
                };
                var entities = new Mock <IQueryEntities>(MockBehavior.Strict).Initialize();

                entities.Setup(m => m.Query <EmailAddress>()).Returns(new[] { emailAddress }.AsQueryable);
                var validator = new UpdateEmailValueValidator(entities.Object);
                var results   = validator.Validate(form);
                var error     = results.Errors.SingleOrDefault(e => e.PropertyName == PropertyName);

                error.ShouldBeNull();
            }
示例#3
0
            public void IsInvalidWhen_Number_DoesNotMatchEmail_ForNonNullPersonUserName()
            {
                const string personUserName = "******";
                const string emailValue     = "*****@*****.**";
                var          form           = new UpdateEmailValueForm
                {
                    PersonUserName = personUserName,
                    Number         = 13,
                    Value          = emailValue.ToUpper(),
                };
                var entities = new Mock <IQueryEntities>(MockBehavior.Strict).Initialize();

                entities.Setup(m => m.Query <EmailAddress>()).Returns(new EmailAddress[] { }.AsQueryable);
                var validator = new UpdateEmailValueValidator(entities.Object);
                var results   = validator.Validate(form);

                results.IsValid.ShouldBeFalse();
                results.Errors.Count.ShouldBeInRange(1, int.MaxValue);
                var error = results.Errors.SingleOrDefault(e => e.PropertyName == PropertyName);

                error.ShouldNotBeNull();
                // ReSharper disable PossibleNullReferenceException
                error.ErrorMessage.ShouldEqual(string.Format(
                                                   ValidateEmailAddress.FailedBecauseNumberAndPrincipalMatchedNoEntity,
                                                   form.Number, form.PersonUserName));
                // ReSharper restore PossibleNullReferenceException
            }
示例#4
0
            public void IsInvalidWhen_Value_DoesNotMatchPreviousSpelling_CaseInsensitively()
            {
                var model = new UpdateEmailValueForm
                {
                    Value          = "*****@*****.**",
                    PersonUserName = string.Empty
                };
                var emailAddress = new EmailAddress
                {
                    Value  = "*****@*****.**",
                    Person = new Person {
                        User = new User {
                            Name = model.PersonUserName
                        },
                    }
                };
                var entities = new Mock <IQueryEntities>(MockBehavior.Strict).Initialize();

                entities.Setup(m => m.Query <EmailAddress>()).Returns(new[] { emailAddress }.AsQueryable);
                var validator = new UpdateEmailValueValidator(entities.Object);
                var results   = validator.Validate(model);

                results.IsValid.ShouldBeFalse();
                results.Errors.Count.ShouldBeInRange(1, int.MaxValue);
                var error = results.Errors.SingleOrDefault(e => e.PropertyName == PropertyName);

                error.ShouldNotBeNull();
                // ReSharper disable PossibleNullReferenceException
                error.ErrorMessage.ShouldEqual(
                    UpdateEmailValueValidator.FailedBecausePreviousSpellingDoesNotMatchValueCaseInsensitively);
                // ReSharper restore PossibleNullReferenceException
            }
            public void HasPublicSetter()
            {
                var obj = new UpdateEmailValueForm
                {
                    OldSpelling = "*****@*****.**"
                };

                obj.ShouldNotBeNull();
            }
示例#6
0
            public void IgnoresChangedState()
            {
                var model = new UpdateEmailValueForm();

                var command = Mapper.Map <UpdateMyEmailValueCommand>(model);

                command.ShouldNotBeNull();
                command.ChangedState.ShouldBeFalse();
            }
示例#7
0
            public void Ignores_Principal()
            {
                const string userName = "******";
                var          model    = new UpdateEmailValueForm {
                    PersonUserName = userName
                };

                var command = Mapper.Map <UpdateMyEmailValueCommand>(model);

                command.ShouldNotBeNull();
                command.Principal.ShouldBeNull();
            }
示例#8
0
            public void MapsNumber_ToNumber()
            {
                const int number = 2;
                var       model  = new UpdateEmailValueForm {
                    Number = number
                };

                var command = Mapper.Map <UpdateMyEmailValueCommand>(model);

                command.ShouldNotBeNull();
                command.Number.ShouldEqual(model.Number);
            }
示例#9
0
            public void MapsValue_ToNewValue()
            {
                const string value = "*****@*****.**";
                var          model = new UpdateEmailValueForm {
                    Value = value
                };

                var command = Mapper.Map <UpdateMyEmailValueCommand>(model);

                command.ShouldNotBeNull();
                command.NewValue.ShouldNotBeNull();
                command.NewValue.ShouldEqual(model.Value);
            }
示例#10
0
            public void IsInvalidWhen_Value_IsMissingTldExtension()
            {
                var validator = new UpdateEmailValueValidator(null);
                var model     = new UpdateEmailValueForm {
                    Value = "email@domain"
                };
                var results = validator.Validate(model);

                results.IsValid.ShouldBeFalse();
                results.Errors.Count.ShouldBeInRange(1, int.MaxValue);
                var error = results.Errors.SingleOrDefault(e => e.PropertyName == PropertyName);

                error.ShouldNotBeNull();
                // ReSharper disable PossibleNullReferenceException
                error.ErrorMessage.ShouldEqual(
                    UpdateEmailValueValidator.FailedBecausePreviousSpellingDoesNotMatchValueCaseInsensitively);
                // ReSharper restore PossibleNullReferenceException
            }
            public void Implements_IReturnUrl()
            {
                var model = new UpdateEmailValueForm();

                model.ShouldImplement <IReturnUrl>();
            }