Example #1
0
        public void Should_be_able_to_register_validation_provider_and_model_metadata()
        {
            var modelMetadataRegistry = new ModelMetadataRegistry();
            var testRegistrar         = new ModelMetadataRegistrar(modelMetadataRegistry);

            testRegistrar.ConstructMetadataUsing(() => new[] { new RegistrarTestDummyObjectConfiguration() });

            testRegistrar.Register();

            Assert.IsType <ExtendedModelMetadataProvider>(ModelMetadataProviders.Current);
            Assert.IsType <CompositeModelValidatorProvider>(ModelValidatorProviders.Providers[0]);
            var modelMetadataItem = modelMetadataRegistry.GetModelPropertiesMetadata(typeof(RegistrarTestDummyObject));

            Assert.NotNull(modelMetadataItem);
            Assert.NotEmpty(modelMetadataItem);
        }
        public ModelMetadataRegistrarTests()
        {
            ModelMetadataProviders.Current = new DataAnnotationsModelMetadataProvider();
            ModelValidatorProviders.Providers.Clear();

            buildManager = new Mock<IBuildManager>();
            registry = new Mock<IModelMetadataRegistry>();
            resolver = new Mock<IDependencyResolver>();

            registrar = new ModelMetadataRegistrar(resolver.Object);

            var configuration1 = new Mock<IModelMetadataConfiguration>();
            var configuration2 = new Mock<IModelMetadataConfiguration>();

            resolver.Setup(a => a.GetService(typeof(IBuildManager))).Returns(buildManager.Object);
            resolver.Setup(a => a.GetService(typeof(IModelMetadataRegistry))).Returns(registry.Object);
            resolver.Setup(a => a.GetServices(typeof(IModelMetadataConfiguration))).Returns(new[] { configuration1.Object, configuration2.Object });

            registry.Setup(r => r.RegisterModelProperties(It.IsAny<Type>(), It.IsAny<IDictionary<string, ModelMetadataItem>>()));

            buildManager.SetupGet(bm => bm.ConcreteTypes).Returns(new[] { new Mock<IModelMetadataConfiguration>().Object.GetType(), new Mock<IModelMetadataConfiguration>().Object.GetType() });
        }