Example #1
0
        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());
        }
Example #2
0
        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());
        }
Example #3
0
        internal static RazorProjectEngine CreateEmpty(Action <RazorProjectEngineBuilder> configure = null)
        {
            var builder = new DefaultRazorProjectEngineBuilder(RazorConfiguration.Default, RazorProjectFileSystem.Empty);

            configure?.Invoke(builder);

            return(builder.Build());
        }
Example #4
0
        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);
        }
Example #5
0
        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());
        }
Example #6
0
        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));
        }