public void Policy_ArrayValidator_Test() { var validator = new ArrayValidator(); var validateResult1 = ValidateContractCode(_badContractCode, validator); validateResult1.Count.ShouldBeGreaterThan(0); validateResult1.First().Message.ShouldContain("Array size is too large"); var validateResult2 = ValidateContractCode(_systemContractCode, validator); validateResult2.Count.ShouldBe(0); }
private void AddArrayValidatorIfNeeded(List <IValidator> validators) { if (FieldType.Equals(TweezersFieldType.Array)) { if (this.ArrayFieldProperties != null) { validators.Add(ArrayValidator.Create(ArrayFieldProperties)); } else { throw new ArgumentException($"ArrayFieldProperties are required for 'array' type"); } } }
private static IValidator ValidatorFromTypeString(string type, IDictionary <string, object> o) { if (string.IsNullOrEmpty(type)) { throw new Exception("Invalid type string used in validator creation."); } IValidator validator = null; switch (type) { case "object": validator = new ObjectValidator(); break; case "string": validator = new StringTypeValidator(); break; case "boolean": validator = new BooleanTypeValidator(); break; case "array": validator = new ArrayValidator(); break; } if (o.ContainsKey("id") && o["id"] is string && validator != null) { IdToValidatorMap.Add((string)o["id"], validator); } // Post fix if (type == "array") { ((ArrayValidator)validator).ItemValidator = GenerateArrayItemValidator(o); } else if (type == "object") { var v = GenerateObjectValidator(o) as ObjectValidator; ((ObjectValidator)validator).Requires = v.Requires; ((ObjectValidator)validator).Validators = v.Validators; } return(validator); }
public void Policy_ArrayValidator_Test() { var validator = new ArrayValidator(); var validateResult1 = ValidateContractCode(_badContractCode, validator); validateResult1.Count.ShouldBeGreaterThan(0); var messages = validateResult1.Select(res => res.Message).ToArray(); messages.ShouldContain("Array size is too large that causes overflow when estimating memory usage."); messages.ShouldContain("Array of AElf.Runtime.CSharp.Tests.BadContract.BadCase3 type is not allowed."); var validateResult2 = ValidateContractCode(_systemContractCode, validator); validateResult2.Count.ShouldBe(0); }
private void AddTagsValidatorIfNeeded(List <IValidator> validators) { if (FieldType.Equals(TweezersFieldType.TagsArray)) { TweezersFieldProperties tagsFieldProperties = new TweezersFieldProperties() { FieldType = TweezersFieldType.String, Min = 1, Max = 50, Regex = $"^[A-Za-z\\d ]+$", }; validators.Add(ArrayValidator.Create(tagsFieldProperties)); } }