public void ValidationModelWithDataAnnotationAndShouldBeFailureTest()
        {
            var model1 = new GoodJob()
            {
                Name = "", Cost = 11
            };
            var model2 = new GoodJob()
            {
                Name = "11111111111", Cost = 11
            };
            var model3 = new GoodJob()
            {
                Name = "Good", Cost = 9
            };
            var model4 = new GoodJob()
            {
                Name = "", Cost = -9
            };
            var validator = new DataAnnotationValidator();

            var r1 = validator.Verify(typeof(GoodJob), model1);
            var r2 = validator.Verify(typeof(GoodJob), model2);
            var r3 = validator.Verify(typeof(GoodJob), model3);
            var r4 = validator.Verify(typeof(GoodJob), model4);

            r1.IsValid.ShouldBeFalse();
            r2.IsValid.ShouldBeFalse();
            r3.IsValid.ShouldBeFalse();
            r4.IsValid.ShouldBeFalse();

            r1.MemberNames.Should().HaveCount(1);
            r2.MemberNames.Should().HaveCount(1);
            r3.MemberNames.Should().HaveCount(1);
            r4.MemberNames.Should().HaveCount(2);
        }
        public void ValidationOneWithDataAnnotationAndShouldBeFailureTest()
        {
            var model1 = new GoodJob()
            {
                Name = "", Cost = 11
            };
            var model2 = new GoodJob()
            {
                Name = "11111111111", Cost = 11
            };
            var model3 = new GoodJob()
            {
                Name = "Good", Cost = 9
            };
            var model4 = new GoodJob()
            {
                Name = "", Cost = -9
            };
            var validator = new DataAnnotationValidator();

            validator.VerifyOne(typeof(GoodJob), model1.Name, "Name").IsValid.Should().BeFalse();
            validator.VerifyOne(typeof(GoodJob), model1.Cost, "Cost").IsValid.Should().BeTrue();

            validator.VerifyOne(typeof(GoodJob), model2.Name, "Name").IsValid.Should().BeFalse();
            validator.VerifyOne(typeof(GoodJob), model2.Cost, "Cost").IsValid.Should().BeTrue();

            validator.VerifyOne(typeof(GoodJob), model3.Name, "Name").IsValid.Should().BeTrue();
            validator.VerifyOne(typeof(GoodJob), model3.Cost, "Cost").IsValid.Should().BeFalse();

            validator.VerifyOne(typeof(GoodJob), model4.Name, "Name").IsValid.Should().BeFalse();
            validator.VerifyOne(typeof(GoodJob), model4.Cost, "Cost").IsValid.Should().BeFalse();
        }
        public void ValidationModelWithDataAnnotationAndShouldBeSuccessTest()
        {
            var model = new GoodJob()
            {
                Name = "Good", Cost = 11
            };
            var validator = new DataAnnotationValidator();

            validator.Verify(typeof(GoodJob), model).IsValid.Should().BeTrue();
        }
Exemplo n.º 4
0
        protected void ValidateProperty([CallerMemberName] string propertyName = null)
        {
            var value   = GetType().GetProperty(propertyName).GetValue(this, null);
            var results = new List <ValidationResult>();

            RemoveError(propertyName);

            if (!DataAnnotationValidator.ValidateProperty(this, propertyName, value, out results))
            {
                foreach (var validationResult in results)
                {
                    AddError(
                        validationResult.ErrorMessage,
                        propertyName);
                }
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// Called before client calls are sent and after service responses are returned.
        /// </summary>
        /// <param name="operationName">The name of the operation.</param>
        /// <param name="inputs">The objects passed to the method by the client.</param>
        /// <returns>The correlation state that is returned as the correlationState parameter in <see cref="AfterCall(string, object[], object, object)"/>.
        /// Return null if you do not intend to use correlation state.</returns>
        public object BeforeCall(string operationName, object[] inputs)
        {
            InstanceContextServiceScope ctxScope = OperationContext.Current.InstanceContext.Extensions.Find <InstanceContextServiceScope>();
            var       svcProvider = ctxScope?.GetServiceScope(null)?.ServiceProvider;
            ErrorList errors      = svcProvider?.GetService <ErrorList>();

            if (errors == null)
            {
                return(null);
            }

            foreach (object obj in inputs)
            {
                foreach (ValidationResult result in DataAnnotationValidator.GetValidationErrors(serviceProvider, obj))
                {
                    errors.AddValidationError(result.ErrorMessage);
                }
            }
            return(null);
        }