public void SimpleDisplayTextForTypeWithWriteOnlyDisplayColumnThrows() { // Arrange DataAnnotationsModelMetadataProvider provider = new DataAnnotationsModelMetadataProvider(); // Act & Assert ExceptionHelper.ExpectInvalidOperationException( () => provider.GetMetadataForType(() => new WriteOnlyDisplayColumnModel(), typeof(WriteOnlyDisplayColumnModel)).SimpleDisplayText, "System.Web.Mvc.Test.DataAnnotationsModelMetadataProviderTest+WriteOnlyDisplayColumnModel has a DisplayColumn attribute for WriteOnlyProperty, but property WriteOnlyProperty does not have a public getter."); ExceptionHelper.ExpectInvalidOperationException( () => provider.GetMetadataForType(() => new PrivateReadPublicWriteDisplayColumnModel(), typeof(PrivateReadPublicWriteDisplayColumnModel)).SimpleDisplayText, "System.Web.Mvc.Test.DataAnnotationsModelMetadataProviderTest+PrivateReadPublicWriteDisplayColumnModel has a DisplayColumn attribute for PrivateReadPublicWriteProperty, but property PrivateReadPublicWriteProperty does not have a public getter."); }
public void ReturnsCharacters() { // Arrange var characters = new[] { "cadence" }; var binder = new CharactersBinder(characters); HttpActionContext actionContext = null; var modelName = "myModelName"; var mockValueProvider = new Mock <IValueProvider>(); mockValueProvider.Setup(v => v.GetValue("myModelName")).ReturnsValueProviderResult("cadence"); var valueProvider = mockValueProvider.Object; var data = new DataAnnotationsModelMetadataProvider(); var modelMetadata = data.GetMetadataForType(null, typeof(Characters)); var bindingContext = new ModelBindingContext { ModelName = modelName, ValueProvider = valueProvider, ModelMetadata = modelMetadata, }; // Act binder.BindModel(actionContext, bindingContext); // Assert var model = bindingContext.Model; Assert.IsAssignableFrom <Characters>(model); }
public void ReflectionBuilderTest() { var reflectionBuilder = new ReflectionContentManagementBuilder(); var module = reflectionBuilder.BuildModuleFromAssembly(typeof(ContactInputViewModel).Assembly); Assert.That(module.Name, Is.EqualTo("ToileDeFond.Tests.Unit.ContentManagement.Reflection")); Assert.That(module.ContentTypes.Count(), Is.EqualTo(1)); var contentType = module.ContentTypes.First(); Assert.That(contentType.Name, Is.EqualTo("ContactInputViewModel")); Assert.That(contentType.Properties.Count(), Is.EqualTo(5)); IContentTypeProperty nameProperty; contentType.TryGetProperty("Name", out nameProperty); Assert.That(nameProperty, Is.Not.Null); var dataAnnotationsModelMetadataProvider = new DataAnnotationsModelMetadataProvider(); var contentModelmetadataBasedOnDataAnnotationsModelMetadataProvider = dataAnnotationsModelMetadataProvider .GetMetadataForType(() => new ContactInputViewModel(), typeof(ContactInputViewModel)); var nameMedata = contentModelmetadataBasedOnDataAnnotationsModelMetadataProvider.Properties.Single(p => p.DisplayName == "Nom"); //TODO: Tester l'overriding du metadata //TODO: Tester l'ensemble des propriétés metadata Assert.That(nameMedata, Is.Not.Null); //Assert.That(nameMedata.DisplayName, Is.EqualTo(nameProperty.DisplayName)); }
public override string ProcessTag(NDjango.Interfaces.IContext context, string content, object[] parms) { var htmlHelperOption = context.tryfind("Html"); if (htmlHelperOption == null) { return(""); } var htmlHelper = (HtmlHelper)htmlHelperOption.Value; var metadata_provider = new DataAnnotationsModelMetadataProvider(); if (context.ModelType == null) { htmlHelper.ViewData.ModelMetadata = null; } else { var model = Activator.CreateInstance(context.ModelType.Value); htmlHelper.ViewData.ModelMetadata = metadata_provider.GetMetadataForType(() => model, context.ModelType.Value); } var result = htmlHelper.Label(parms[0].ToString()); if (result == null) { return(""); } else { return(result.ToHtmlString()); } }
protected ModelMetadata CreateMetaData(Type type) { var meta = new DataAnnotationsModelMetadataProvider(); return(meta.GetMetadataForType(null, type)); //return new ModelMetadata(new EmptyModelMetadataProvider(), null, null, type, null); }
public void ReturnsLeaderboardIdParams() { // Arrange var binder = new LeaderboardIdParamsBinder(); HttpActionContext actionContext = null; var modelName = "myModelName"; var mockValueProvider = new Mock <IValueProvider>(); mockValueProvider.Setup(v => v.GetValue(modelName)).ReturnsValueProviderResult("2047616,2047493"); var valueProvider = mockValueProvider.Object; var data = new DataAnnotationsModelMetadataProvider(); var modelMetadata = data.GetMetadataForType(null, typeof(LeaderboardIdParams)); var bindingContext = new ModelBindingContext { ModelName = modelName, ValueProvider = valueProvider, ModelMetadata = modelMetadata, }; // Act binder.BindModel(actionContext, bindingContext); // Assert var model = bindingContext.Model; Assert.IsAssignableFrom <LeaderboardIdParams>(model); }
private static ModelMetadata GetMetadataForType(Type t) { DataAnnotationsModelMetadataProvider metadataProvider = new DataAnnotationsModelMetadataProvider(); return(metadataProvider.GetMetadataForType(null, t)); }
private static ModelMetadata GetMetadataForObject(object o) { DataAnnotationsModelMetadataProvider metadataProvider = new DataAnnotationsModelMetadataProvider(); return(metadataProvider.GetMetadataForType(() => o, o.GetType())); }
public void SimpleDisplayNameWithUnknownDisplayColumnThrows() { // Arrange DataAnnotationsModelMetadataProvider provider = new DataAnnotationsModelMetadataProvider(); // Act & Assert ExceptionHelper.ExpectInvalidOperationException( () => provider.GetMetadataForType(() => new UnknownDisplayColumnModel(), typeof(UnknownDisplayColumnModel)).SimpleDisplayText, "System.Web.Mvc.Test.DataAnnotationsModelMetadataProviderTest+UnknownDisplayColumnModel has a DisplayColumn attribute for NoPropertyWithThisName, but property NoPropertyWithThisName does not exist."); }
public void GetMetadataForTypeSetsTypeWithNullPropertyName() { // Arrange DataAnnotationsModelMetadataProvider provider = new DataAnnotationsModelMetadataProvider(); // Act ModelMetadata result = provider.GetMetadataForType(null, typeof(string)); // Assert Assert.AreEqual(typeof(string), result.ModelType); Assert.IsNull(result.PropertyName); }
public void ValidatbleObjectAdapter() { var model = new TestModel(); var k = new DataAnnotationsModelMetadataProvider(); var metadata = k.GetMetadataForType(() => model, model.GetType()); var controllerContext = new ControllerContext(); var adapter = new MvcContrib.Localization.ValidatableObjectAdapter(metadata, controllerContext); var result = adapter.Validate(model).ToList(); Assert.AreNotEqual(0, result.Count); }
public void GetMetadataForTypeSetsTypeWithNullPropertyName() { // Arrange DataAnnotationsModelMetadataProvider provider = new DataAnnotationsModelMetadataProvider(); // Act ModelMetadata result = provider.GetMetadataForType(null, typeof(string)); // Assert Assert.AreEqual(typeof(string), result.ModelType); Assert.IsNull(result.PropertyName); }
public void ClientValidatable() { ValidationMessageProviders.Reset(); var model = new TestModel(); var k = new DataAnnotationsModelMetadataProvider(); var metadata = k.GetMetadataForType(() => model, model.GetType()); var validators = _provider.GetValidators(metadata, new ControllerContext()); var result = validators.ToList().First().Validate(model).ToList(); Assert.NotEqual(0, result.Count); }
public void SimpleDisplayTextForNonNullClassWithNullDisplayColumnValueRevertsToDefaultBehavior() { // Arrange DataAnnotationsModelMetadataProvider provider = new DataAnnotationsModelMetadataProvider(); SimpleDisplayTextAttributeModel model = new SimpleDisplayTextAttributeModel(); ModelMetadata metadata = provider.GetMetadataForType(() => model, typeof(SimpleDisplayTextAttributeModel)); // Act string result = metadata.SimpleDisplayText; // Assert Assert.AreEqual("42", result); // Falls back to the default logic of first property value }
public static void SetDataForUserModelBinderTests(TestContext testContext) { BINDER = new ProviderModelBinder(); HTTP_CONTROLLER_CONTEXT = new HttpControllerContext(); HTTP_CONTROLLER_CONTEXT.Request = new HttpRequestMessage(HttpMethod.Put, "http://localhost/providers"); BINDING_CONTEXT = new ModelBindingContext(); var data = new DataAnnotationsModelMetadataProvider(); var modelMetadata = data.GetMetadataForType(null, typeof(Provider)); BINDING_CONTEXT.ModelMetadata = modelMetadata; }
public void SimpleDisplayTextForNullClassRevertsToDefaultBehavior() { // Arrange string expected = "Null Display Text"; DataAnnotationsModelMetadataProvider provider = new DataAnnotationsModelMetadataProvider(); ModelMetadata metadata = provider.GetMetadataForType(null, typeof(SimpleDisplayTextAttributeModel)); metadata.NullDisplayText = expected; // Act string result = metadata.SimpleDisplayText; // Assert Assert.AreEqual(expected, result); }
public void SimpleDisplayTextForNonNullClassWithNonNullDisplayColumnValue() { // Arrange string expected = "Custom property display value"; DataAnnotationsModelMetadataProvider provider = new DataAnnotationsModelMetadataProvider(); SimpleDisplayTextAttributeModel model = new SimpleDisplayTextAttributeModel { DisplayColumnProperty = expected }; ModelMetadata metadata = provider.GetMetadataForType(() => model, typeof(SimpleDisplayTextAttributeModel)); // Act string result = metadata.SimpleDisplayText; // Assert Assert.AreEqual(expected, result); }
public BindModel() { actionContext = ContextUtil.CreateActionContext(); binder = new PaginationBinder <StubPagination>(); var data = new DataAnnotationsModelMetadataProvider(); var modelMetadata = data.GetMetadataForType(null, typeof(IPagination)); mockValueProvider = new Mock <IValueProvider>(); bindingContext = new ModelBindingContext { ModelName = modelName, ValueProvider = mockValueProvider.Object, ModelMetadata = modelMetadata, }; }
private void Test(object rawValue, Type currentType, bool expectedResult, DateTime?expectedModel) { DateTimeFromUnixTimeStampBinder binder = new DateTimeFromUnixTimeStampBinder(); IValueProvider valueProvider = MockRepository.GenerateStub <IValueProvider>(); ValueProviderResult valueResult = new ValueProviderResult(rawValue, rawValue.ToString(), CultureInfo.CurrentCulture); DataAnnotationsModelMetadataProvider metadataProvider = new DataAnnotationsModelMetadataProvider(); valueProvider.Stub(s => s.GetValue(Arg <string> .Is.Anything)).Return(valueResult); ModelBindingContext context = new ModelBindingContext { ValueProvider = valueProvider, ModelMetadata = metadataProvider.GetMetadataForType(null, currentType) }; bool result = binder.BindModel(null, context); Assert.AreEqual(result, expectedResult); Assert.AreEqual(expectedModel, context.Model); }
private static ModelBindingContext CreateBindingContext(IModelBinder binder, IValueProvider valueProvider, Type type, IEnumerable <IModelValidatorProvider> validatorProviders = null) { validatorProviders = validatorProviders ?? Enumerable.Empty <IModelValidatorProvider>(); var metadataProvider = new DataAnnotationsModelMetadataProvider(); var bindingContext = new ModelBindingContext { ModelBinder = binder, FallbackToEmptyPrefix = true, MetadataProvider = metadataProvider, ModelMetadata = metadataProvider.GetMetadataForType(null, type), ModelState = new ModelStateDictionary(), ValueProvider = valueProvider, ValidatorProviders = validatorProviders }; return(bindingContext); }
private static ModelBindingContext GetBindingContext(Type modelType) { var metadataProvider = new DataAnnotationsModelMetadataProvider(); var operationBindingContext = new OperationBindingContext { MetadataProvider = metadataProvider, HttpContext = new DefaultHttpContext(), ValidatorProvider = Mock.Of <IModelValidatorProvider>(), }; var bindingContext = new ModelBindingContext { ModelMetadata = metadataProvider.GetMetadataForType(null, modelType), ModelName = "someName", ValueProvider = Mock.Of <IValueProvider>(), ModelState = new ModelStateDictionary(), OperationBindingContext = operationBindingContext, }; return(bindingContext); }
public void GetModelBindingContext_ReturnsOnlyIncludedProperties_UsingBindAttributeInclude() { // Arrange var actionContext = new ActionContext( new RouteContext(Mock.Of <HttpContext>()), Mock.Of <ActionDescriptor>()); var metadataProvider = new DataAnnotationsModelMetadataProvider(); var modelMetadata = metadataProvider.GetMetadataForType( modelAccessor: null, modelType: typeof(TypeWithIncludedPropertiesUsingBindAttribute)); var actionBindingContext = new ActionBindingContext(); // Act var context = DefaultControllerActionArgumentBinder.GetModelBindingContext( modelMetadata, actionContext, Mock.Of <OperationBindingContext>()); // Assert Assert.True(context.PropertyFilter(context, "IncludedExplicitly1")); Assert.True(context.PropertyFilter(context, "IncludedExplicitly2")); }
private static ModelBindingContext CreateBindingContext(IModelBinder binder, IValueProvider valueProvider, Type type, IModelValidatorProvider validatorProvider = null) { validatorProvider = validatorProvider ?? GetValidatorProvider(); var metadataProvider = new DataAnnotationsModelMetadataProvider(); var bindingContext = new ModelBindingContext { FallbackToEmptyPrefix = true, ModelMetadata = metadataProvider.GetMetadataForType(null, type), ModelState = new ModelStateDictionary(), ValueProvider = valueProvider, OperationBindingContext = new OperationBindingContext { MetadataProvider = metadataProvider, ModelBinder = binder, ValidatorProvider = validatorProvider } }; return(bindingContext); }
public override string ProcessTag(NDjango.Interfaces.IContext context, string content, object[] parms) { var htmlHelperOption = context.tryfind("Html"); if (htmlHelperOption == null) { return(""); } var htmlHelper = (HtmlHelper)htmlHelperOption.Value; var metadata_provider = new DataAnnotationsModelMetadataProvider(); // we should relay here on what was set with the {% model Model:... %} tag in the template // rather than what was set runtime in the "Model" context variable - they can differ if (context.ModelType == null) { htmlHelper.ViewData.ModelMetadata = null; } else { var model = Activator.CreateInstance(context.ModelType.Value); htmlHelper.ViewData.ModelMetadata = metadata_provider.GetMetadataForType(() => model, context.ModelType.Value); } var result = ProcessTag(htmlHelper, context, content, parms); if (result == null) { return(""); } else { return(result.ToHtmlString()); } }
private static ModelMetadata GetMetadataForType(Type t) { DataAnnotationsModelMetadataProvider metadataProvider = new DataAnnotationsModelMetadataProvider(); return metadataProvider.GetMetadataForType(null, t); }
private static ModelMetadata GetMetadataForObject(object o) { DataAnnotationsModelMetadataProvider metadataProvider = new DataAnnotationsModelMetadataProvider(); return metadataProvider.GetMetadataForType(() => o, o.GetType()); }
private static ModelMetadata GetModelMetaData(Type type, Func <object> modelAccessor = null) { DataAnnotationsModelMetadataProvider modelMetadataProvider = new DataAnnotationsModelMetadataProvider(); return(modelMetadataProvider.GetMetadataForType(modelAccessor, type)); }
private static ModelBindingContext CreateBindingContext(IModelBinder binder, IValueProvider valueProvider, Type type, IEnumerable<IModelValidatorProvider> validatorProviders = null) { validatorProviders = validatorProviders ?? Enumerable.Empty<IModelValidatorProvider>(); var metadataProvider = new DataAnnotationsModelMetadataProvider(); var bindingContext = new ModelBindingContext { ModelBinder = binder, FallbackToEmptyPrefix = true, MetadataProvider = metadataProvider, ModelMetadata = metadataProvider.GetMetadataForType(null, type), ModelState = new ModelStateDictionary(), ValueProvider = valueProvider, ValidatorProviders = validatorProviders }; return bindingContext; }
public void SimpleDisplayTextForNonNullClassWithNullDisplayColumnValueRevertsToDefaultBehavior() { // Arrange DataAnnotationsModelMetadataProvider provider = new DataAnnotationsModelMetadataProvider(); SimpleDisplayTextAttributeModel model = new SimpleDisplayTextAttributeModel(); ModelMetadata metadata = provider.GetMetadataForType(() => model, typeof(SimpleDisplayTextAttributeModel)); // Act string result = metadata.SimpleDisplayText; // Assert Assert.AreEqual("42", result); // Falls back to the default logic of first property value }
public void SimpleDisplayTextForNullClassRevertsToDefaultBehavior() { // Arrange string expected = "Null Display Text"; DataAnnotationsModelMetadataProvider provider = new DataAnnotationsModelMetadataProvider(); ModelMetadata metadata = provider.GetMetadataForType(null, typeof(SimpleDisplayTextAttributeModel)); metadata.NullDisplayText = expected; // Act string result = metadata.SimpleDisplayText; // Assert Assert.AreEqual(expected, result); }
public void SimpleDisplayTextForNonNullClassWithNonNullDisplayColumnValue() { // Arrange string expected = "Custom property display value"; DataAnnotationsModelMetadataProvider provider = new DataAnnotationsModelMetadataProvider(); SimpleDisplayTextAttributeModel model = new SimpleDisplayTextAttributeModel { DisplayColumnProperty = expected }; ModelMetadata metadata = provider.GetMetadataForType(() => model, typeof(SimpleDisplayTextAttributeModel)); // Act string result = metadata.SimpleDisplayText; // Assert Assert.AreEqual(expected, result); }
public void SimpleDisplayTextForTypeWithWriteOnlyDisplayColumnThrows() { // Arrange DataAnnotationsModelMetadataProvider provider = new DataAnnotationsModelMetadataProvider(); // Act & Assert ExceptionHelper.ExpectInvalidOperationException( () => provider.GetMetadataForType(() => new WriteOnlyDisplayColumnModel(), typeof(WriteOnlyDisplayColumnModel)).SimpleDisplayText, "System.Web.Mvc.Test.DataAnnotationsModelMetadataProviderTest+WriteOnlyDisplayColumnModel has a DisplayColumn attribute for WriteOnlyProperty, but property WriteOnlyProperty does not have a public getter."); ExceptionHelper.ExpectInvalidOperationException( () => provider.GetMetadataForType(() => new PrivateReadPublicWriteDisplayColumnModel(), typeof(PrivateReadPublicWriteDisplayColumnModel)).SimpleDisplayText, "System.Web.Mvc.Test.DataAnnotationsModelMetadataProviderTest+PrivateReadPublicWriteDisplayColumnModel has a DisplayColumn attribute for PrivateReadPublicWriteProperty, but property PrivateReadPublicWriteProperty does not have a public getter."); }
public void SimpleDisplayNameWithUnknownDisplayColumnThrows() { // Arrange DataAnnotationsModelMetadataProvider provider = new DataAnnotationsModelMetadataProvider(); // Act & Assert ExceptionHelper.ExpectInvalidOperationException( () => provider.GetMetadataForType(() => new UnknownDisplayColumnModel(), typeof(UnknownDisplayColumnModel)).SimpleDisplayText, "System.Web.Mvc.Test.DataAnnotationsModelMetadataProviderTest+UnknownDisplayColumnModel has a DisplayColumn attribute for NoPropertyWithThisName, but property NoPropertyWithThisName does not exist."); }