public void _08_SaveCustomerButton_Click_ShouldShowAnErrorWhenTheSelectedCustomerIsInvalid()
        {
            //Arrange
            var existingCustomer = new CustomerBuilder().WithId().Build();

            AddCustomerToTheGridAndSelectIt(existingCustomer);
            _errorTextBlock.Text = "";

            var expectedErrorMessage = Guid.NewGuid().ToString();

            _customerValidatorMock.Setup(validator => validator.IsValid(It.IsAny <Customer>()))
            .Returns(ValidatorResult.Fail(expectedErrorMessage));

            //Act
            _saveCustomerButton.FireClickEvent();

            //Assert
            _customerValidatorMock.Verify(validator => validator.IsValid(existingCustomer), Times.Once,
                                          "The validator is not used correctly to check if the customer is valid.");
            _customerRepositoryMock.Verify(repo => repo.Update(It.IsAny <Customer>()), Times.Never,
                                           "The 'Update' method of the repository should not have been called.");
            _customerRepositoryMock.Verify(repo => repo.Add(It.IsAny <Customer>()), Times.Never,
                                           "The 'Add' method of the repository should not have been called.");

            Assert.That(_errorTextBlock.Text, Is.EqualTo(expectedErrorMessage),
                        "The ErrorTextBlock should contain the error message in de failed ValidatorResult.");
        }
        public async Task <ValidatorResult> Validate(CreateVisitRequest request)
        {
            var validationResult = new ValidatorResult();

            if (request == null)
            {
                validationResult.Exception = new ArgumentNullException(nameof(request));
                return(validationResult);
            }

            var restaurant = await restaurantRepository.FindById(request.RestaurantId);

            if (restaurant == null)
            {
                validationResult.Exception = new EntityNotFoundException(typeof(Restaurant), request.RestaurantId);
                return(validationResult);
            }

            var user = await userRepository.FindById(request.UserId);

            if (user == null)
            {
                validationResult.Exception = new EntityNotFoundException(typeof(User), request.UserId);
                return(validationResult);
            }

            return(validationResult);
        }
Exemple #3
0
            public static ValidatorResult CreateInvalid(string error)
            {
                ValidatorResult x = new ValidatorResult();

                x.Error = error;
                return(x);
            }
Exemple #4
0
 public static MessageModel FromKafkaMessage(KafkaMessageModel kafkaMessage, ValidatorResult result) => new MessageModel()
 {
     KafkaMessage = kafkaMessage,
     FoundInKafka = kafkaMessage != null,
     Result       = result,
     Event        = new EventModel(kafkaMessage)
 };
Exemple #5
0
        public ValidatorResult Validate(string name, object value)
        {
            var result = new ValidatorResult();

            if (value == null)
            {
                return(result);
            }

            var script = value.ToString();

            if (script == string.Empty)
            {
                return(result);
            }

            try {
                var program = _jint.Parse(script, _options);
                if (program != null && program.Errors != null && program.Errors.Any())
                {
                    result.Valid = false;
                    foreach (var e in program.Errors)
                    {
                        result.Error("{0}, script: {1}...", e.Message, script.Left(30));
                    }
                }
            } catch (ParserException ex) {
                result.Valid = false;
                result.Error("{0}, script: {1}...", ex.Message, script.Left(30));
            }
            return(result);
        }
Exemple #6
0
        public Task <ValidatorResult> Validate(UpdateVisitRequest request)
        {
            return(Task.Factory.StartNew(() =>
            {
                var validationResult = new ValidatorResult();
                if (request == null)
                {
                    validationResult.Exception = new ArgumentNullException(nameof(request));
                    return validationResult;
                }

                var visit = visitRepository.FindById(request.Id);
                if (visit == null)
                {
                    validationResult.Exception = new EntityNotFoundException(typeof(Visit), request.Id);
                    return validationResult;
                }

                var restaurant = restaurantRepository.FindById(request.RestaurantId);
                if (restaurant == null)
                {
                    validationResult.Exception = new EntityNotFoundException(typeof(Restaurant), request.RestaurantId);
                    return validationResult;
                }

                var user = userRepository.FindById(request.UserId);
                if (user == null)
                {
                    validationResult.Exception = new EntityNotFoundException(typeof(User), request.UserId);
                    return validationResult;
                }

                return validationResult;
            }));
        }
        public async Task <ValidatorResult> IsSatisfiedAsync(OptionDto option)
        {
            var result = new ValidatorResult {
                IsSatisfied = true
            };

            if (_option == null)
            {
                return(result);
            }

            var allOptions = await _option.FindAsync(new OptionByNameSpecification(option.Name, option.OptionId));

            if (allOptions == null ||
                !allOptions.Any())
            {
                return(result);
            }

            result.IsSatisfied = false;
            result.Errors      = new List <ValidatorError> {
                new ValidatorError {
                    Code   = ErrorCode.DuplicateName,
                    Detail = new ValidatorErrorDetail {
                        JsonData = "", Messages = new List <string> {
                            $"Option duplicate: {option.Name}"
                        }
                    },
                    Type           = ValidatorType.Rules,
                    GeneratorClass = GetType().FullName
                }
            };

            return(result);
        }
Exemple #8
0
        public async Task <ValidatorResult> Validate(UpdateUserRequest updateUserRequest)
        {
            var validationResult = new ValidatorResult();

            if (updateUserRequest == null)
            {
                validationResult.Exception = new ArgumentNullException(nameof(updateUserRequest));
                return(validationResult);
            }

            var user = await repository.FindById(updateUserRequest.Id);

            if (user == null)
            {
                validationResult.Exception = new EntityNotFoundException(typeof(User), updateUserRequest.Id);
                return(validationResult);
            }

            var userFoundByEmail = await repository.FindByEmail(updateUserRequest.Email);

            var userWithEmailExists = userFoundByEmail != null;
            var isUserOwnerOfEmail  = userFoundByEmail?.Id == updateUserRequest.Id;

            if (userWithEmailExists && !isUserOwnerOfEmail)
            {
                validationResult.Exception = new EntityAlreadyExistsException(typeof(User), nameof(User.Email), updateUserRequest.Email);
                return(validationResult);
            }

            return(validationResult);
        }
        public string Post([FromBody] CourseDTO courseDTO)
        {
            ValidatorResult validatorResult = CourseValidator.IsValidCourse(courseDTO);

            if (!validatorResult.IsValid)
            {
                HttpContext.Response.StatusCode = 422;
                return(JsonConvert.SerializeObject(validatorResult.ValidationMessage));
            }

            Course course = new Course()
            {
                Name        = courseDTO.Name,
                Description = courseDTO.Description,
                Length      = courseDTO.Length,
                StartDate   = courseDTO.StartDate,
                EndDate     = courseDTO.EndDate
            };

            //Add to DB
            try
            {
                northwindContext.Add(course);
                northwindContext.SaveChanges();
                HttpContext.Response.StatusCode = 200;
                return(JsonConvert.SerializeObject("The course is successfully saved."));
            }
            catch (Exception e)
            {
                HttpContext.Response.StatusCode = 520;
                return(JsonConvert.SerializeObject(e.Message));
            }
        }
        public ValidatorResult Validate()
        {
            ValidatorResult resultModel = new ValidatorResult();

            switch (this._ruleset)
            {
            case CategoryRuleset.Insert:
                resultModel = ValidateInsertRuleset(resultModel);
                break;

            case CategoryRuleset.Update:
                resultModel = ValidateEditRuleset(resultModel);
                break;

            case CategoryRuleset.Delete:
                resultModel = ValidateDeleteRuleset(resultModel);
                break;

            case CategoryRuleset.Recover:
                resultModel = ValidateRecoverRuleset(resultModel);
                break;
            }

            return(resultModel);
        }
Exemple #11
0
        public ValidatorResult Validate(T validatingObject)
        {
            var result = new ValidatorResult();

            AddErrors(result.Errors, validatingObject);
            return(result);
        }
Exemple #12
0
    protected override ValidatorResult Evaluate()
    {
        ValidatorResult returnVal = base.Evaluate();

        if (returnVal != ValidatorResult.Valid)
        {
            Item       obj         = base.GetItem();
            ItemLink[] brokenLinks = obj.Links.GetBrokenLinks(false);
            //are all the broken links basically because they are contextual?
            if (brokenLinks.All(a => a.TargetPath.Contains("$development")))
            {
                foreach (ItemLink brokenLink in brokenLinks)
                {
                    Database database = Sitecore.Configuration.Factory.GetDatabase("master");
                    //try again but replacing the varible with a context
                    var secondTryPath = brokenLink.TargetPath.Replace(
                        "$development", obj.Paths.Path);
                    Item secondTryItem = database.GetItem(secondTryPath);
                    if (secondTryItem == null)
                    {
                        return(returnVal);
                    }
                }
                //if we've got here then all the links are valid when adding the context
                return(ValidatorResult.Valid);
            }
        }
        return(returnVal);
    }
Exemple #13
0
        public async Task <ValidatorResult> IsSatisfiedAsync(CategoryDto category)
        {
            var result = new ValidatorResult {
                IsSatisfied = true
            };

            if (_category == null)
            {
                return(result);
            }

            var allCategories = await _category.FindAsync(new CategoryByNameSpecification(category.Name, category.CategoryId));

            if (allCategories == null ||
                !allCategories.Any())
            {
                return(result);
            }

            result.IsSatisfied = false;
            result.Errors      = new List <ValidatorError> {
                new ValidatorError {
                    Code   = ErrorCode.DuplicateName,
                    Detail = new ValidatorErrorDetail {
                        JsonData = "", Messages = new List <string> {
                            $"Category duplicate: {category.Name}"
                        }
                    },
                    Type           = ValidatorType.Rules,
                    GeneratorClass = GetType().FullName
                }
            };

            return(result);
        }
Exemple #14
0
        public async Task <ValidatorResult> Validate(CreateRestaurantRequest request)
        {
            var validationResult = new ValidatorResult();

            if (request == null)
            {
                validationResult.Exception = new ArgumentNullException(nameof(request));
                return(validationResult);
            }

            var restaurant = await repository.FindRestaurantByNameAndAddress(request.Name, request.Address);

            if (restaurant != null)
            {
                var restaurantValuePairs = new[]
                {
                    new EntityValuePair(nameof(Restaurant.Name), request.Name),
                    new EntityValuePair(nameof(Restaurant.Address), request.Address)
                };
                validationResult.Exception = new EntityAlreadyExistsException(typeof(Restaurant), restaurantValuePairs);
                return(validationResult);
            }

            return(validationResult);
        }
Exemple #15
0
        public async Task <ValidatorResult> IsSatisfiedAsync(ProductDto product)
        {
            var result = new ValidatorResult {
                IsSatisfied = true
            };

            if (!string.IsNullOrWhiteSpace(product.Name) &&
                product.Name.Trim().Length <= 50)
            {
                return(result);
            }

            result.IsSatisfied = false;
            result.Errors      = new List <ValidatorError> {
                new ValidatorError {
                    Code   = ErrorCode.LenghtName50,
                    Detail = new ValidatorErrorDetail {
                        JsonData = "", Messages = new List <string> {
                            $"Name lenght min 1 max  50, actual is: {product?.Name?.Length ?? 0}"
                        }
                    },
                    Type           = ValidatorType.Rules,
                    GeneratorClass = GetType().FullName
                }
            };

            return(result);
        }
        private ValidatorResult ValidateBase(ValidatorResult resultModel)
        {
            if (CurrentCategorySchema == null)
            {
                resultModel.Errors.Add(CATEGORY_SCHEMA_NULL_ERROR_MESSAGE);
            }

            if (this._categoryToValidate.Parent != null)
            {
                if (this._categoryToValidate.Parent.StartDate > this._categoryToValidate.StartDate)
                {
                    resultModel.Errors.Add(START_DATE_PARENT_ERROR_MESSAGE);
                }

                if (this._categoryToValidate.Parent.EndDate <= this._categoryToValidate.StartDate)
                {
                    resultModel.Errors.Add(END_DATE_PARENT_ERROR_MESSAGE);
                }

                if (CurrentCategorySchema != null)
                {
                    CategorySchema parentCategorySchema = FacadeFactory.Instance.CategorySchemaFacade.GetActiveCategorySchema(this._categoryToValidate.Parent.StartDate);
                    if (parentCategorySchema.Id != CurrentCategorySchema.Id)
                    {
                        resultModel.Errors.Add(ANOTHER_SCHEMA_PARENT_ERROR_MESSAGE);
                    }
                }
            }

            return(resultModel);
        }
        public static ValidatorResult ValidarTamanhos(this object objeto)
        {
            var result     = new ValidatorResult();
            var properties = objeto.GetType().GetProperties();
            var erros      = new List <ValidatorModel>();

            foreach (var csvColumnDef in properties.Where(p => p.CustomAttributes.Any()).Select(propertie => (ValidarAttribute)propertie.GetCustomAttributes(typeof(ValidarAttribute), false).First()))
            {
                try
                {
                    var val = objeto.GetPropertyValue <string>(csvColumnDef.Nome);
                    if (val != null && val.Length > csvColumnDef.TamanhoMaximo)
                    {
                        erros.Add(new ValidatorModel()
                        {
                            Campo         = csvColumnDef.Nome,
                            TamanhoMaximo = csvColumnDef.TamanhoMaximo,
                            TamanhoReal   = val.Length,
                            Valor         = val
                        });
                    }
                }
                catch (Exception)
                {
                    result.IsValid = false;
                }
            }
            if (!erros.Any())
            {
                return(result);
            }
            result.IsValid = false;
            result.Erros   = erros;
            return(result);
        }
        public async Task <ValidatorResult> IsSatisfiedAsync(ProductDto product)
        {
            var result = new ValidatorResult {
                IsSatisfied = true
            };

            if (_product == null)
            {
                return(result);
            }

            var allProducts = await _product.FindAsync(new ProductByNameSpecification(product.Name, product.ProductId));

            if (allProducts == null ||
                !allProducts.Any())
            {
                return(result);
            }

            result.IsSatisfied = false;
            result.Errors      = new List <ValidatorError> {
                new ValidatorError {
                    Code   = ErrorCode.DuplicateName,
                    Detail = new ValidatorErrorDetail {
                        JsonData = "", Messages = new List <string> {
                            $"Name duplicate: {product.Name}"
                        }
                    },
                    Type           = ValidatorType.Rules,
                    GeneratorClass = GetType().FullName
                }
            };

            return(result);
        }
        public async Task <CoapMessage> ObserveAsync(CoapMessage message)
        {
            if (!message.Observe.HasValue)
            {
                //RST because GET needs to be observe/unobserve
                await logger?.LogWarningAsync($"CoAP observe received without Observe flag and will return RST for {session.Identity}");

                await logger?.LogDebugAsync($"Returning RST because GET needs to be observe/unobserve for {session.Identity}");

                return(new CoapResponse(message.MessageId, ResponseMessageType.Reset, ResponseCodeType.EmptyMessage));
            }

            CoapUri             uri = new CoapUri(message.ResourceUri.ToString());
            ResponseMessageType rmt = message.MessageType == CoapMessageType.Confirmable ? ResponseMessageType.Acknowledgement : ResponseMessageType.NonConfirmable;

            ValidatorResult result = EventValidator.Validate(false, uri.Resource, channel, graphManager);

            if (!result.Validated)
            {
                await logger?.LogErrorAsync($"{result.ErrorMessage} for {session.Identity}");

                return(new CoapResponse(message.MessageId, rmt, ResponseCodeType.Unauthorized, message.Token));
            }

            if (!message.Observe.Value)
            {
                //unsubscribe
                await logger?.LogInformationAsync($"CoAP unobserve '{message.ResourceUri.ToString()}' for {session.Identity}.");

                await adapter.UnsubscribeAsync(uri.Resource);

                await logger?.LogDebugAsync($"CoAP unsubscribed '{message.ResourceUri.ToString()} for {session.Identity}'.");

                coapObserved.Remove(uri.Resource);
            }
            else
            {
                //subscribe
                SubscriptionMetadata metadata = new SubscriptionMetadata()
                {
                    IsEphemeral = true,
                    Identity    = session.Identity,
                    Indexes     = session.Indexes
                };

                await logger?.LogInformationAsync($"CoAP subscribed '{message.ResourceUri.ToString()}' for {session.Identity}");

                string subscriptionUriString = await adapter.SubscribeAsync(uri.Resource, metadata);


                if (!coapObserved.ContainsKey(uri.Resource)) //add resource to observed list
                {
                    coapObserved.Add(uri.Resource, message.Token);
                    await logger?.LogDebugAsync("Key added to observable resource.");
                }
            }

            return(new CoapResponse(message.MessageId, rmt, ResponseCodeType.Valid, message.Token));
        }
Exemple #20
0
        public override ValidatorResult Validate(MessageModel message)
        {
            ValidatorResult toReturn = base.Validate(message);

            toReturn.Concat(message.RunValidation(new List <(Func <MessageModel, bool> validation, Func <MessageModel, string> message)>()
            {
                { Rules.RequiredStringPropertyRule(m => m.OpCo, "OPCO") },
                { Rules.RequiredStringPropertyRule(m => m.Role, "Role") },
        public override ValidatorResult Validate(MessageModel message)
        {
            ValidatorResult toReturn = base.Validate(message);

            toReturn.Concat(message.RunValidation(new List <(Func <MessageModel, bool> validation, Func <MessageModel, string> message)>()
            {
                { Rules.CategoryValueRule("PDP") },
                { Rules.ActionValueRule("Ad Impression") },
Exemple #22
0
            public static ValidatorResult CreateValid(T result)
            {
                ValidatorResult x = new ValidatorResult();

                x.Error       = string.Empty;
                x.ValidResult = result;
                return(x);
            }
        protected override ValidatorResult Validate()
        {
            if (!File.Exists(Input))
            {
                return(ValidatorResult.CreateInvalid(Global.GetStringResource("StringFileNotExists")));
            }

            return(ValidatorResult.CreateValid(Input));
        }
 static public DrawOptionsResult GetResult(ValidatorResult result)
 {
     return(new DrawOptionsResult()
     {
         backgroundItem = GetColorItemBackground(result.isItemValid, result.isItemAllError),
         BackgroundKey = GetColorPartBackground(result.isKeyValid, result.isItemValid, result.isItemAllError),
         BackgroundValue = GetColorPartBackground(result.isValueValid, result.isItemValid, result.isItemAllError)
     });
 }
Exemple #25
0
        public void Validator_CheckValues_Pass()
        {
            var validator = new Validator();
            var expected = new ValidatorResult() { IsValid = true, Error = null };

            var result = validator.CheckValues("12", "1", "10", "20");

            Assert.AreEqual(expected.IsValid, result.IsValid);
        }
        public override ValidatorResult Validate(MessageModel message)
        {
            ValidatorResult toReturn = base.Validate(message);

            toReturn.Concat(message.RunValidation(new List <(Func <MessageModel, bool> validation, Func <MessageModel, string> message)>()
            {
                { Rules.CategoryValueRule("Cart") },
                { Rules.ActionValueRule("Quantity Change") }
            }));
        public override ValidatorResult Validate(MessageModel message)
        {
            ValidatorResult toReturn = base.Validate(message);

            toReturn.Concat(message.RunValidation(new List <(Func <MessageModel, bool> validation, Func <MessageModel, string> message)>()
            {
            }));
            return(toReturn);
        }
        public override ValidatorResult Validate(MessageModel message)
        {
            ValidatorResult toReturn = base.Validate(message);

            toReturn.Concat(message.RunValidation(new List <(Func <MessageModel, bool> validation, Func <MessageModel, string> message)>()
            {
                //{ ( validation: m => m.EventId > 0 , message: "Event Id is not set" ) }
            }));
            return(toReturn);
        }
Exemple #29
0
        public void Validator_CheckValues_Fail_Aphanumeric()
        {
            var validator = new Validator();
            var expected = new ValidatorResult() { IsValid = false, Error = "The following values are invalid: Height" };

            var result = validator.CheckValues("12", "A1", "10", "20");

            Assert.AreEqual(expected.IsValid, result.IsValid);
            Assert.AreEqual(expected.Error, result.Error);
        }
Exemple #30
0
        public void Validator_CheckValues_Fail_NegativeValues()
        {
            var validator = new Validator();
            var expected = new ValidatorResult() { IsValid = false, Error = "The following values are invalid: Width" };

            var result = validator.CheckValues("12", "1", "-10", "20");

            Assert.AreEqual(expected.IsValid, result.IsValid);
            Assert.IsNotNull(expected.Error, result.Error);
        }
 public bool Equals(ValidatorResult other)
 {
     if (ReferenceEquals(null, other)) return false;
     if (ReferenceEquals(this, other)) return true;
     return other.successful.Equals(successful) && Equals(other.failure_message, failure_message);
 }