public static RazorProjectEngine Create( RazorConfiguration configuration, RazorProjectFileSystem fileSystem, Action <RazorProjectEngineBuilder> configure) { if (fileSystem == null) { throw new ArgumentNullException(nameof(fileSystem)); } if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var builder = new DefaultRazorProjectEngineBuilder(configuration, fileSystem); // The intialization order is somewhat important. // // Defaults -> Extensions -> Additional customization // // This allows extensions to rely on default features, and customizations to override choices made by // extensions. AddDefaultPhases(builder.Phases); AddDefaultsFeatures(builder.Features); LoadExtensions(builder, configuration.Extensions); configure?.Invoke(builder); return(builder.Build()); }
public static RazorProjectEngine Create( RazorProjectFileSystem fileSystem, RazorConfiguration configuration, Action <RazorProjectEngineBuilder> configure) { if (fileSystem == null) { throw new ArgumentNullException(nameof(fileSystem)); } if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var builder = new DefaultRazorProjectEngineBuilder(configuration, fileSystem); AddDefaults(builder); if (configuration.DesignTime) { AddDesignTimeDefaults(builder); } else { AddRuntimeDefaults(builder); } configure?.Invoke(builder); return(builder.Build()); }
internal static RazorProjectEngine CreateEmpty(Action <RazorProjectEngineBuilder> configure = null) { var builder = new DefaultRazorProjectEngineBuilder(RazorConfiguration.Default, RazorProjectFileSystem.Empty); configure?.Invoke(builder); return(builder.Build()); }
public void Build_CreatesProjectEngineWithFileSystem() { // Arrange var fileSystem = Mock.Of <RazorProjectFileSystem>(); var builder = new DefaultRazorProjectEngineBuilder(RazorConfiguration.Default, fileSystem); // Act var projectEngine = builder.Build(); // Assert Assert.Same(fileSystem, projectEngine.FileSystem); }
public static RazorProjectEngine Create( RazorConfiguration configuration, RazorProjectFileSystem fileSystem, Action <RazorProjectEngineBuilder> configure) { if (fileSystem == null) { throw new ArgumentNullException(nameof(fileSystem)); } if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var builder = new DefaultRazorProjectEngineBuilder(configuration, fileSystem); // The intialization order is somewhat important. // // Defaults -> Extensions -> Additional customization // // This allows extensions to rely on default features, and customizations to override choices made by // extensions. AddDefaultPhases(builder.Phases); AddDefaultFeatures(builder.Features); if (configuration.LanguageVersion.CompareTo(RazorLanguageVersion.Version_5_0) >= 0) { builder.Features.Add(new ViewCssScopePass()); } if (configuration.LanguageVersion.CompareTo(RazorLanguageVersion.Version_3_0) >= 0) { FunctionsDirective.Register(builder); ImplementsDirective.Register(builder); InheritsDirective.Register(builder); NamespaceDirective.Register(builder); AttributeDirective.Register(builder); AddComponentFeatures(builder, configuration.LanguageVersion); } LoadExtensions(builder, configuration.Extensions); configure?.Invoke(builder); return(builder.Build()); }
public void Build_AddsPhasesToRazorEngine() { // Arrange var builder = new DefaultRazorProjectEngineBuilder(RazorConfiguration.Default, Mock.Of <RazorProjectFileSystem>()); builder.Phases.Add(Mock.Of <IRazorEnginePhase>()); builder.Phases.Add(Mock.Of <IRazorEnginePhase>()); var phases = builder.Phases.ToArray(); // Act var projectEngine = builder.Build(); // Assert Assert.Collection(projectEngine.Engine.Phases, phase => Assert.Same(phases[0], phase), phase => Assert.Same(phases[1], phase)); }