/// <summary> /// Initailises valid customer object to be used in all tests. Also defines <see cref="ValidatorConfig"/> /// </summary> public CustomerValidatorTests() { this._customer = new CustomerDto() { FirstName = "John", LastName = "Test", PolicyReferenceNumber = "AA-000001", Email = "*****@*****.**", DateOfBirth = DateTime.Now.AddYears(-20) }; // Set up mock config to inject in Cstomer Validator ValidatorConfig config = new ValidatorConfig() { MinimumCustomerAge = 18, MinimumNameLength = 3, MaximumNameLength = 50, PolicyReferencePattern = @"^[A-Z]{2}-\d{6}$", EmailPattern = @"^[\w]{4,}@\w{2,}(.com|.co.uk)$" }; IOptions <ValidatorConfig> options = Options.Create(config); this._customerValidator = new CustomerValidator(options); }
public async void PrimaryValidatorConfigIsReturned() { var expectedConfig = new ValidatorConfig { PrimaryValidator = null, AccountNumber = "2e86f48216567302527b69eae6c6a188097ed3a9741f43cc3723e570cf47644c", IpAddress = "54.183.17.224", NodeIdentifier = "2262026a562b0274163158e92e8fbc4d28e519bc5ba8c1cf403703292be84a51", Port = null, Protocol = "http", Version = "v1.0", DefaultTransactionFee = 1, RootAccountFile = "http://54.183.17.224/media/root_account_file.json", RootAccountFileHash = "cc9390cc579dc8a99a1f34c1bea5d54a0f45b27ecee7e38662f0cd853f76744d", SeedBlockIdentifier = "", DailyConfirmationRate = null, NodeType = NodeType.PrimaryValidator }; var service = BuildValidatorConfigServiceMock(expectedConfig); var primaryValidatorConfig = await service.GetValidatorConfigAsync(); var expectedConfigStr = JsonConvert.SerializeObject(expectedConfig); var actualConfigStr = JsonConvert.SerializeObject(primaryValidatorConfig); Assert.Equal(expectedConfigStr, actualConfigStr); }
public void testNameRelation() { // Set up the validators. CertificateFetcher fetcher = new CertificateFetcherOffline(); ValidatorConfig validatorPrefix = new ValidatorConfig(fetcher); ValidatorConfig validatorEqual = new ValidatorConfig(fetcher); ValidatorConfig validatorStrict = new ValidatorConfig(fetcher); validatorPrefix.load(new FileInfo(System.IO.Path.Combine(policyConfigDirectory_.FullName, "relation_ruleset_prefix.conf")).FullName); validatorEqual.load(new FileInfo(System.IO.Path.Combine(policyConfigDirectory_.FullName, "relation_ruleset_equal.conf")).FullName); validatorStrict.load(new FileInfo(System.IO.Path.Combine(policyConfigDirectory_.FullName, "relation_ruleset_strict.conf")).FullName); // Set up a Data packet and result object. Data data = new Data(); net.named_data.jndn.KeyLocator.getFromSignature(data.getSignature()).setType( net.named_data.jndn.KeyLocatorType.KEYNAME); net.named_data.jndn.KeyLocator.getFromSignature(data.getSignature()).setKeyName( new Name("/SecurityTestSecRule/KEY/123")); TestValidationPolicyConfig.TestValidationResult result = new TestValidationPolicyConfig.TestValidationResult(data); data.setName(new Name("/TestRule1")); result.checkPolicy(validatorPrefix); Assert.AssertTrue("Prefix relation should match prefix name", result.calledContinue_ && !result.calledFailure_); result.checkPolicy(validatorEqual); Assert.AssertTrue("Equal relation should match prefix name", result.calledContinue_ && !result.calledFailure_); result.checkPolicy(validatorStrict); Assert.AssertTrue("Strict-prefix relation should not match prefix name", result.calledFailure_ && !result.calledContinue_); data.setName(new Name("/TestRule1/hi")); result.checkPolicy(validatorPrefix); Assert.AssertTrue("Prefix relation should match longer name", result.calledContinue_ && !result.calledFailure_); result.checkPolicy(validatorEqual); Assert.AssertTrue("Equal relation should not match longer name", result.calledFailure_ && !result.calledContinue_); result.checkPolicy(validatorStrict); Assert.AssertTrue("Strict-prefix relation should match longer name", result.calledContinue_ && !result.calledFailure_); data.setName(new Name("/Bad/TestRule1/")); result.checkPolicy(validatorPrefix); Assert.AssertTrue("Prefix relation should not match inner components", result.calledFailure_ && !result.calledContinue_); result.checkPolicy(validatorEqual); Assert.AssertTrue("Equal relation should not match inner components", result.calledFailure_ && !result.calledContinue_); result.checkPolicy(validatorStrict); Assert.AssertTrue("Strict-prefix relation should not match inner components", result.calledFailure_ && !result.calledContinue_); }
public static IValidatorConfigService BuildValidatorConfigServiceMock(ValidatorConfig expectedConfig) { var response = new HttpResponseMessage(HttpStatusCode.OK); response.Content = new StringContent(JsonConvert.SerializeObject(expectedConfig), Encoding.UTF8, "application/json"); var requestSenderMock = new Mock <IHttpRequestSender>(); IValidatorConfigService service = new ValidatorConfigService(requestSenderMock.Object); requestSenderMock .Setup(x => x.GetAsync("/config")) .ReturnsAsync(response); return(service); }
public IStringValidator CreateValidator(ValidatorConfig config) { return(config switch { ValidatorConfig { Validator : ValidatorType.Fqdn } fqdn when fqdn.Opt is string => new FqdnValidator((string)fqdn.Opt), ValidatorConfig { Validator : ValidatorType.MaxChars } maxChars when maxChars.Opt is long => new MaxCharsValidator((long)maxChars.Opt), ValidatorConfig { Validator : ValidatorType.OneOf } oneOf when oneOf.Opt is JArray => new OneOfValidator(((JArray)oneOf.Opt).ToObject <string[]>()), null => throw new ArgumentNullException(), _ => throw new ArgumentException($"Invalid config for {config.Validator}, Opt: '{config.Opt}'"), });
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); B2CPlatform.Init(UnityConfig.GetConfiguredContainer()); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); ValidatorConfig.SetupValidators(ModelValidatorProviders.Providers); IContentProvider contentProvider = UnityConfig.GetConfiguredContainer().Resolve <IContentProvider>(); contentProvider.RegisterBundle("~\\Views", "BicycleQuote", false); contentProvider.RegisterBundle("~\\Views\\Shared", "Common", false); contentProvider.RegisterBundle("~\\Views\\Question", "Question", false); contentProvider.RegisterBundle("~\\Views\\Quote", "Quote", false); contentProvider.RegisterBundle("~\\Views\\PolicyDetail", "PolicyDetail", false); contentProvider.RegisterBundle("~\\Views\\Payment", "PolicyPayment", false); contentProvider.RegisterBundle("~\\Views\\Confirmation", "Confirmation", false); }
public async void ConfirmationValidatorConfigIsReturned() { var expectedConfig = new ValidatorConfig { PrimaryValidator = new ValidatorNode { AccountNumber = "2e86f48216567302527b69eae6c6a188097ed3a9741f43cc3723e570cf47644c", IpAddress = "54.183.17.224", NodeIdentifier = "2262026a562b0274163158e92e8fbc4d28e519bc5ba8c1cf403703292be84a51", Port = null, Protocol = "http", Version = "v1.0", DefaultTransactionFee = 1, RootAccountFile = "http://54.183.17.224/media/root_account_file.json", RootAccountFileHash = "cc9390cc579dc8a99a1f34c1bea5d54a0f45b27ecee7e38662f0cd853f76744d", SeedBlockIdentifier = "", DailyConfirmationRate = null, Trust = "100.00" }, AccountNumber = "d5c4db217c032ef21df84be4201766b73e623940ce6d95aedf153da2f8c38626", IpAddress = "54.67.72.197", NodeIdentifier = "61dbf00c2dd7886f01fda60aca6fffd9799f4612110fe804220570add6b28923", Port = null, Protocol = "http", Version = "v1.0", DefaultTransactionFee = 1, RootAccountFile = "http://54.67.72.197/media/root_account_file.json", RootAccountFileHash = "cc9390cc579dc8a99a1f34c1bea5d54a0f45b27ecee7e38662f0cd853f76744d", SeedBlockIdentifier = "", DailyConfirmationRate = null, NodeType = NodeType.ConfirmationValidator }; var service = BuildValidatorConfigServiceMock(expectedConfig); var confirmationValidatorConfig = await service.GetValidatorConfigAsync(); var expectedConfigStr = JsonConvert.SerializeObject(expectedConfig); var actualConfigStr = JsonConvert.SerializeObject(confirmationValidatorConfig); Assert.Equal(expectedConfigStr, actualConfigStr); }
public BasePagedAndSortedRequestValidator(ValidatorConfig validatorConfig) { RuleFor(q => q.Limit) .NotNull() .NotEmpty() .InclusiveBetween(1, validatorConfig.MaxPageSize); RuleFor(q => q.Page) .NotNull() .NotEmpty() .GreaterThan(0); RuleFor(q => q.Order) .NotNull() .NotEmpty() .IsEnumName(typeof(OrderEnum)); RuleFor(q => q.OrderBy) .NotNull() .NotEmpty() .Must(IsOrderCorrect) .WithMessage(SharedValidationMessages.InvalidOrderBy); }
public void testHyperRelation() { // Set up the validator. CertificateFetcher fetcher = new CertificateFetcherOffline(); ValidatorConfig validator = new ValidatorConfig(fetcher); validator.load(new FileInfo(System.IO.Path.Combine(policyConfigDirectory_.FullName, "hyperrelation_ruleset.conf")).FullName); // Set up a Data packet and result object. Data data = new Data(); net.named_data.jndn.KeyLocator.getFromSignature(data.getSignature()).setType( net.named_data.jndn.KeyLocatorType.KEYNAME); TestValidationPolicyConfig.TestValidationResult result = new TestValidationPolicyConfig.TestValidationResult(data); data.setName(new Name("/SecurityTestSecRule/Basic/Longer/Data2")); net.named_data.jndn.KeyLocator.getFromSignature(data.getSignature()).setKeyName( new Name("/SecurityTestSecRule/Basic/Longer/KEY/123")); result.checkPolicy(validator); Assert.AssertTrue(result.calledFailure_ && !result.calledContinue_); net.named_data.jndn.KeyLocator.getFromSignature(data.getSignature()).setKeyName( new Name("/SecurityTestSecRule/Basic/KEY/123")); result.checkPolicy(validator); Assert.AssertTrue(result.calledFailure_ && !result.calledContinue_); data.setName(new Name("/SecurityTestSecRule/Basic/Other/Data1")); net.named_data.jndn.KeyLocator.getFromSignature(data.getSignature()).setKeyName( new Name("/SecurityTestSecRule/Basic/Longer/KEY/123")); result.checkPolicy(validator); Assert.AssertTrue(result.calledFailure_ && !result.calledContinue_); net.named_data.jndn.KeyLocator.getFromSignature(data.getSignature()).setKeyName( new Name("/SecurityTestSecRule/Basic/KEY/123")); result.checkPolicy(validator); Assert.AssertTrue(result.calledFailure_ && !result.calledContinue_); }
static void CollectValueArgs( Dictionary <MethodParameter, ObjExpr> result, ValidatorConfig def, string validatorName, MethodReference method, Func <int, TypeReference, ObjExpr> getField, int fieldCount, MetadataContext cx ) { var parameters = method.Params(); var valueParameters = (def.ValueParameters ?? ImmutableArray.Create(parameters.Indexed().Single(x => x.value.Name == "value").index)) .Select(i => parameters[i]) .ToArray(); foreach (var(index, p) in valueParameters.Indexed()) { if (p.IsParams) { if (result.ContainsKey(p)) { throw new Exception($"Parameter {p.Name} was already filled"); } var elementType = p.Type.GetElementTypeFromIEnumerable(cx, false, out _); var list = new List <ObjExpr>(); for (int pi = 0; pi + index < fieldCount; pi++) { list.Add(getField(index + pi, elementType)); } result.Add(p, @this => ExpressionFactory.MakeArray(elementType, list.Select(x => x(@this)).ToArray())); } else if (index < fieldCount) { if (result.ContainsKey(p)) { throw new Exception($"Parameter {p.Name} was already filled"); } result.Add(p, getField(index, p.Type)); } else { if (!result.ContainsKey(p)) { if (!p.HasDefaultValue) { throw new Exception($"Required value parameter {p.Name} was not filled"); } var a = Expression.Constant(p.DefaultValue, p.Type); //JsonToObjectInitialization.InitializeObject(p.Type, JToken.FromObject(p.GetConstantValue())); result.Add(p, _ => a); } } } foreach (var p in parameters) { if (!result.ContainsKey(p)) { if (p.HasDefaultValue) { var a = Expression.Constant(p.DefaultValue, p.Type); result.Add(p, _ => a); } else { throw new Exception($"Method '{method}' registred as validator '{validatorName}' has an unexpected parameter '{p.Name}'."); } } } }
public GetBooksByAuthorRequestValidator(ValidatorConfig validatorConfig) : base(validatorConfig) { }
protected override void Bootstrap(ServiceConfig config) { base.Bootstrap(config); ValidatorConfig.RegisterValidators(config.ValidatorsContainer); DataManagerConfig.RegisterDataManagers(config.DataManagerContainer); }
public UserDataValidatorManager(IEnumerable <IUserDataValidator> dataValidators, ValidatorConfig validatorConfig, UserDataStructureConvertor userDataStructureConvertor) { m_validatorConfig = validatorConfig; m_userDataStructureConvertor = userDataStructureConvertor; m_dataValidatorsDic = dataValidators.ToDictionary(x => x.Type); }
/// <summary> /// Call reset() then call validator.checkPolicy to set this object's results. /// When finished, you can check calledSuccess_, etc. /// </summary> /// /// <param name="validator">The ValidatorConfig for calling checkPolicy.</param> internal void checkPolicy(ValidatorConfig validator) { reset(); validator.getPolicy().checkPolicy(data_, state_, this); }