Beispiel #1
0
        private static RazorViewEngineOptionsSetup GetSetup(
            CompatibilityVersion compatibilityVersion = CompatibilityVersion.Latest,
            IHostingEnvironment hostingEnvironment    = null)
        {
            hostingEnvironment = hostingEnvironment ?? Mock.Of <IHostingEnvironment>();
            var compatibilityOptions = new MvcCompatibilityOptions {
                CompatibilityVersion = compatibilityVersion
            };

            return(new RazorViewEngineOptionsSetup(
                       hostingEnvironment,
                       NullLoggerFactory.Instance,
                       Options.Options.Create(compatibilityOptions)));
        }
Beispiel #2
0
        public void RazorViewEngineOptionsSetup_ConfiguresAllowRecompilingViewsOnFileChange()
        {
            // Arrange
            var hostingEnv           = Mock.Of <IHostingEnvironment>(env => env.EnvironmentName == EnvironmentName.Production);
            var compatibilityVersion = new MvcCompatibilityOptions {
                CompatibilityVersion = CompatibilityVersion.Version_2_2
            };
            var optionsSetup    = GetSetup(CompatibilityVersion.Version_2_2, hostingEnv);
            var serviceProvider = new ServiceCollection()
                                  .AddOptions()
                                  .AddSingleton <IConfigureOptions <RazorViewEngineOptions> >(optionsSetup)
                                  .BuildServiceProvider();

            // Act
            var options = serviceProvider.GetRequiredService <IOptions <RazorViewEngineOptions> >();

            // Assert
            Assert.False(options.Value.AllowRecompilingViewsOnFileChange);
        }
Beispiel #3
0
        public void PostConfigure_ConfiguresMaxValidationDepth()
        {
            // Arrange
            var mvcOptions = new MvcOptions();
            var mvcCompatibilityOptions = new MvcCompatibilityOptions
            {
                CompatibilityVersion = CompatibilityVersion.Version_3_0,
            };

            var configureOptions = new MvcOptionsConfigureCompatibilityOptions(
                NullLoggerFactory.Instance,
                Options.Create(mvcCompatibilityOptions));

            // Act
            configureOptions.PostConfigure(string.Empty, mvcOptions);

            // Assert
            Assert.Equal(32, mvcOptions.MaxValidationDepth);
        }
Beispiel #4
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc(option =>
            {
            });//.SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
            services.AddApiVersioning(options =>
            {
                options.DefaultApiVersion = new ApiVersion(1, 0);
                options.ReportApiVersions = true;
                options.AssumeDefaultVersionWhenUnspecified = true;
                //配置从Http请求报头获取api版本
                options.ApiVersionReader = new HeaderApiVersionReader("api-version");
            });
            services.AddSingleton <IPersonRepository, MemoryPersonRepository>();


            MvcOptions mvcOptions = services.BuildServiceProvider().CreateScope().ServiceProvider.GetService <IOptionsMonitor <MvcOptions> >().CurrentValue;
            MvcCompatibilityOptions mvcCompatibilityOptions = services.BuildServiceProvider().CreateScope().ServiceProvider.GetService <IOptionsMonitor <MvcCompatibilityOptions> >().CurrentValue;
            IActionSelector         actionSelector          = services.BuildServiceProvider().CreateScope().ServiceProvider.GetService <IActionSelector>();
        }
Beispiel #5
0
        public void PostConfigure_DoesNotConfiguresMaxValidationDepth_WhenSetToNull()
        {
            // Arrange
            var mvcOptions = new MvcOptions
            {
                MaxValidationDepth = null,
            };
            var mvcCompatibilityOptions = new MvcCompatibilityOptions
            {
                CompatibilityVersion = CompatibilityVersion.Version_3_0,
            };

            var configureOptions = new MvcOptionsConfigureCompatibilityOptions(
                NullLoggerFactory.Instance,
                Options.Create(mvcCompatibilityOptions));

            // Act
            configureOptions.PostConfigure(string.Empty, mvcOptions);

            // Assert
            Assert.Null(mvcOptions.MaxValidationDepth);
        }
Beispiel #6
0
        public void PostConfigure_DoesNotConfiguresMaxValidationDepth_WhenSetToValue()
        {
            // Arrange
            var expected   = 13;
            var mvcOptions = new MvcOptions
            {
                MaxValidationDepth = expected,
            };
            var mvcCompatibilityOptions = new MvcCompatibilityOptions
            {
                CompatibilityVersion = CompatibilityVersion.Version_2_2,
            };

            var configureOptions = new MvcOptionsConfigureCompatibilityOptions(
                NullLoggerFactory.Instance,
                Options.Create(mvcCompatibilityOptions));

            // Act
            configureOptions.PostConfigure(string.Empty, mvcOptions);

            // Assert
            Assert.Equal(expected, mvcOptions.MaxValidationDepth);
        }