Exemplo n.º 1
0
        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);
            }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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());
            }
        }
Exemplo n.º 5
0
        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);
            }
Exemplo n.º 7
0
        private static ModelMetadata GetMetadataForType(Type t)
        {
            DataAnnotationsModelMetadataProvider metadataProvider =
                new DataAnnotationsModelMetadataProvider();

            return(metadataProvider.GetMetadataForType(null, t));
        }
Exemplo n.º 8
0
        private static ModelMetadata GetMetadataForObject(object o)
        {
            DataAnnotationsModelMetadataProvider metadataProvider =
                new DataAnnotationsModelMetadataProvider();

            return(metadataProvider.GetMetadataForType(() => o, o.GetType()));
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 12
0
        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);
        }
Exemplo n.º 14
0
        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
        }
Exemplo n.º 15
0
        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;
        }
Exemplo n.º 16
0
        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);
        }
Exemplo n.º 17
0
        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);
        }
Exemplo n.º 20
0
        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);
        }
Exemplo n.º 21
0
        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);
        }
Exemplo n.º 22
0
        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"));
        }
Exemplo n.º 23
0
        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);
        }
Exemplo n.º 24
0
        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());
 }
Exemplo n.º 27
0
        private static ModelMetadata GetModelMetaData(Type type, Func <object> modelAccessor = null)
        {
            DataAnnotationsModelMetadataProvider modelMetadataProvider = new DataAnnotationsModelMetadataProvider();

            return(modelMetadataProvider.GetMetadataForType(modelAccessor, type));
        }
Exemplo n.º 28
0
 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.");
        }