public void EnsureOptions_ConfiguresDefaultCompilationOptions() { // Arrange var hostingEnvironment = Mock.Of <IWebHostEnvironment>(h => h.EnvironmentName == "Development"); var compiler = new PublicCSharpCompiler(ReferenceManager, hostingEnvironment); // Act & Assert var compilationOptions = compiler.CSharpCompilationOptions; Assert.False(compilationOptions.AllowUnsafe); Assert.Equal(ReportDiagnostic.Default, compilationOptions.GeneralDiagnosticOption); Assert.Equal(OptimizationLevel.Debug, compilationOptions.OptimizationLevel); Assert.Collection(compilationOptions.SpecificDiagnosticOptions.OrderBy(d => d.Key), item => { Assert.Equal("CS1701", item.Key); Assert.Equal(ReportDiagnostic.Suppress, item.Value); }, item => { Assert.Equal("CS1702", item.Key); Assert.Equal(ReportDiagnostic.Suppress, item.Value); }, item => { Assert.Equal("CS1705", item.Key); Assert.Equal(ReportDiagnostic.Suppress, item.Value); }); }
private static TestRazorViewCompiler GetViewCompiler( TestFileProvider fileProvider = null, PublicRazorReferenceManager referenceManager = null, IList <CompiledViewDescriptor> precompiledViews = null, PublicCSharpCompiler csharpCompiler = null) { fileProvider = fileProvider ?? new TestFileProvider(); var options = Options.Create(new MvcRazorRuntimeCompilationOptions { FileProviders = { fileProvider } }); var compilationFileProvider = new PublicRuntimeCompilationFileProvider(options); referenceManager = referenceManager ?? CreateReferenceManager(); precompiledViews = precompiledViews ?? Array.Empty <CompiledViewDescriptor>(); var hostingEnvironment = Mock.Of <IWebHostEnvironment>(e => e.ContentRootPath == "BasePath"); var fileSystem = new PublicFileProviderRazorProjectFileSystem(compilationFileProvider); var projectEngine = RazorProjectEngine.Create(RazorConfiguration.Default, fileSystem, builder => { RazorExtensions.Register(builder); }); csharpCompiler = csharpCompiler ?? new PublicCSharpCompiler(referenceManager, hostingEnvironment); return(new TestRazorViewCompiler( projectEngine, csharpCompiler, precompiledViews)); }
public void GetCompilationOptions_ReturnsDefaultOptionsIfApplicationDoesNotHaveDependencyContext() { // Arrange var hostingEnvironment = Mock.Of <IWebHostEnvironment>(); var compiler = new PublicCSharpCompiler(ReferenceManager, hostingEnvironment); // Act var options = compiler.GetDependencyContextCompilationOptions(); // Assert Assert.Same(DependencyContextCompilationOptions.Default, options); }
public void GetCompilationOptions_ReturnsDefaultOptionsIfApplicationNameIsNullOrEmpty(string name) { // Arrange var hostingEnvironment = Mock.Of <IWebHostEnvironment>(e => e.ApplicationName == name); var compiler = new PublicCSharpCompiler(ReferenceManager, hostingEnvironment); // Act var options = compiler.GetDependencyContextCompilationOptions(); // Assert Assert.Same(DependencyContextCompilationOptions.Default, options); }
public void EnsureOptions_ConfiguresDefaultParseOptions() { // Arrange var hostingEnvironment = Mock.Of <IWebHostEnvironment>(h => h.EnvironmentName == "Development"); var compiler = new PublicCSharpCompiler(ReferenceManager, hostingEnvironment); // Act & Assert var parseOptions = compiler.ParseOptions; Assert.Equal(LanguageVersion.CSharp8, parseOptions.LanguageVersion); Assert.Equal(new[] { "DEBUG" }, parseOptions.PreprocessorSymbolNames); }
public void EnsureOptions_SetsPreprocessorSymbols(string environment, string expectedConfiguration) { // Arrange var options = new RazorViewEngineOptions(); var hostingEnvironment = new Mock <IWebHostEnvironment>(); hostingEnvironment.SetupGet(e => e.EnvironmentName) .Returns(environment); var compiler = new PublicCSharpCompiler(ReferenceManager, hostingEnvironment.Object); // Act & Assert var parseOptions = compiler.ParseOptions; Assert.Equal(new[] { expectedConfiguration }, parseOptions.PreprocessorSymbolNames); }
public void Constructor_SetsOptimizationLevelBasedOnEnvironment( string environment, OptimizationLevel expected) { // Arrange var options = new RazorViewEngineOptions(); var hostingEnvironment = new Mock <IWebHostEnvironment>(); hostingEnvironment.SetupGet(e => e.EnvironmentName) .Returns(environment); var compiler = new PublicCSharpCompiler(ReferenceManager, hostingEnvironment.Object); // Act & Assert var compilationOptions = compiler.CSharpCompilationOptions; Assert.Equal(expected, compilationOptions.OptimizationLevel); }
public TestRazorViewCompiler( RazorProjectEngine projectEngine, PublicCSharpCompiler csharpCompiler, IList <CompiledViewDescriptor> precompiledViews, Func <string, CompiledViewDescriptor> compile = null) : base(new Dictionary <string, RazorProjectEngine> { { "default", projectEngine } }, csharpCompiler, precompiledViews, NullLogger.Instance) { Compile = compile; if (Compile == null) { Compile = path => new CompiledViewDescriptor { RelativePath = path, Item = CreateForView(path), }; } }