public void RequiredMembersRecognized(string propertyName, bool isRequired) { HttpConfiguration config = new HttpConfiguration(); IRequiredMemberSelector selector = new ModelValidationRequiredMemberSelector(config.Services.GetModelMetadataProvider(), config.Services.GetModelValidatorProviders()); Assert.Equal(isRequired, selector.IsRequiredMember(typeof(PurchaseOrder).GetProperty(propertyName))); }
public void IsRequiredMemberReturnsFalseForInvalidProperties(string propertyName) { HttpConfiguration config = new HttpConfiguration(); IRequiredMemberSelector selector = new ModelValidationRequiredMemberSelector(config.Services.GetModelMetadataProvider(), config.Services.GetModelValidatorProviders()); Assert.False(selector.IsRequiredMember(typeof(BadProperties).GetProperty(propertyName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic))); }
public void IsRequiredMember_ReturnsFalse_ForNullableProperties(string propertyName) { HttpConfiguration config = new HttpConfiguration(); IRequiredMemberSelector selector = new ModelValidationRequiredMemberSelector(config.Services.GetModelMetadataProvider(), config.Services.GetModelValidatorProviders()); Assert.False(selector.IsRequiredMember(typeof(NullableProperties).GetProperty(propertyName))); }
public void IsRequiredMember_RecognizesRequiredMembers(string propertyName, bool isRequired) { HttpConfiguration config = new HttpConfiguration(); IRequiredMemberSelector selector = new ModelValidationRequiredMemberSelector(config.Services.GetModelMetadataProvider(), config.Services.GetModelValidatorProviders()); Assert.Equal(isRequired, selector.IsRequiredMember(typeof(PurchaseOrder).GetProperty(propertyName))); }
public void IsRequiredMember_ReturnsFalse_ForInvalidProperties(string propertyName) { HttpConfiguration config = new HttpConfiguration(); IRequiredMemberSelector selector = new ModelValidationRequiredMemberSelector(config.Services.GetModelMetadataProvider(), config.Services.GetModelValidatorProviders()); PropertyInfo propertyInfo = typeof(BadProperties).GetProperty(propertyName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); Assert.False(selector.IsRequiredMember(propertyInfo)); }
private static void DefaultInitializer(HttpConfiguration configuration) { // Register the default IRequiredMemberSelector for formatters that haven't been assigned one ModelMetadataProvider metadataProvider = configuration.Services.GetModelMetadataProvider(); IEnumerable<ModelValidatorProvider> validatorProviders = configuration.Services.GetModelValidatorProviders(); IRequiredMemberSelector defaultRequiredMemberSelector = new ModelValidationRequiredMemberSelector(metadataProvider, validatorProviders); foreach (MediaTypeFormatter formatter in configuration.Formatters) { if (formatter.RequiredMemberSelector == null) { formatter.RequiredMemberSelector = defaultRequiredMemberSelector; } } // Initialize the tracing layer. // This must be the last initialization code to execute // because it alters the configuration and expects no // further changes. As a default service, we know it // must be present. ITraceManager traceManager = configuration.Services.GetTraceManager(); Contract.Assert(traceManager != null); traceManager.Initialize(configuration); }
/// <summary> /// Prepares the server for operation. /// </summary> /// <remarks> /// This method must be called after all configuration is complete /// but before the first request is processed. /// </remarks> protected virtual void Initialize() { // Register the default IRequiredMemberSelector for formatters that haven't been assigned one ModelMetadataProvider metadataProvider = _configuration.Services.GetModelMetadataProvider(); IEnumerable<ModelValidatorProvider> validatorProviders = _configuration.Services.GetModelValidatorProviders(); IRequiredMemberSelector defaultRequiredMemberSelector = new ModelValidationRequiredMemberSelector(metadataProvider, validatorProviders); foreach (MediaTypeFormatter formatter in _configuration.Formatters) { if (formatter.RequiredMemberSelector == null) { formatter.RequiredMemberSelector = defaultRequiredMemberSelector; } } }