Esempio n. 1
0
        private static RazorProjectEngine GetDeclarationProjectEngine(
            SourceGeneratorProjectItem item,
            IEnumerable <SourceGeneratorProjectItem> imports,
            RazorSourceGenerationOptions razorSourceGeneratorOptions)
        {
            var fileSystem = new VirtualRazorProjectFileSystem();

            fileSystem.Add(item);
            foreach (var import in imports)
            {
                fileSystem.Add(import);
            }

            var discoveryProjectEngine = RazorProjectEngine.Create(razorSourceGeneratorOptions.Configuration, fileSystem, b =>
            {
                b.Features.Add(new DefaultTypeNameFeature());
                b.Features.Add(new ConfigureRazorCodeGenerationOptions(options =>
                {
                    options.SuppressPrimaryMethodBody = true;
                    options.SuppressChecksum          = true;
                }));

                b.SetRootNamespace(razorSourceGeneratorOptions.RootNamespace);

                CompilerFeatures.Register(b);
                RazorExtensions.Register(b);

                b.SetCSharpLanguageVersion(razorSourceGeneratorOptions.CSharpLanguageVersion);
            });

            return(discoveryProjectEngine);
        }
Esempio n. 2
0
        public void Equals_ReturnsFalse_IfRootNamespaceChanged()
        {
            // Arrange
            var options1 = new RazorSourceGenerationOptions
            {
                CSharpLanguageVersion = LanguageVersion.Latest,
                Configuration         = RazorConfiguration.Default,
                GenerateMetadataSourceChecksumAttributes = true,
                RootNamespace = "Initial",
            };

            var options2 = new RazorSourceGenerationOptions
            {
                Configuration         = RazorConfiguration.Default,
                CSharpLanguageVersion = LanguageVersion.Latest,
                GenerateMetadataSourceChecksumAttributes = true,
                RootNamespace = "Different",
            };

            // Act
            var equals = options1.Equals(options2);

            // Assert
            Assert.False(equals);
        }
Esempio n. 3
0
        public void Equals_ReturnsTrue_IfRazorConfigurationAreDifferentInstancesButEqualValues()
        {
            // Arrange
            var options1 = new RazorSourceGenerationOptions
            {
                CSharpLanguageVersion = LanguageVersion.Latest,
                Configuration         = RazorConfiguration.Create(RazorLanguageVersion.Parse("6.0"), "Default", Enumerable.Empty <RazorExtension>(), useConsolidatedMvcViews: true),
                GenerateMetadataSourceChecksumAttributes = true,
                RootNamespace = "Asp",
                SupportLocalizedComponentNames = true,
                SuppressRazorSourceGenerator   = true,
            };

            var options2 = new RazorSourceGenerationOptions
            {
                Configuration         = RazorConfiguration.Create(RazorLanguageVersion.Parse("6.0"), "Default", Enumerable.Empty <RazorExtension>(), useConsolidatedMvcViews: true),
                CSharpLanguageVersion = LanguageVersion.Latest,
                GenerateMetadataSourceChecksumAttributes = true,
                RootNamespace = "Asp",
                SupportLocalizedComponentNames = true,
                SuppressRazorSourceGenerator   = true,
            };

            // Act
            var equals = options1.Equals(options2);

            // Assert
            Assert.True(equals);
        }
Esempio n. 4
0
        public void Equals_ReturnsTrue_IfValuesAreUnchanged()
        {
            // Arrange
            var options1 = new RazorSourceGenerationOptions
            {
                CSharpLanguageVersion = LanguageVersion.Latest,
                Configuration         = RazorConfiguration.Default,
                GenerateMetadataSourceChecksumAttributes = true,
                RootNamespace = "Asp",
                SupportLocalizedComponentNames = true,
                SuppressRazorSourceGenerator   = true,
            };

            var options2 = new RazorSourceGenerationOptions
            {
                Configuration         = RazorConfiguration.Default,
                CSharpLanguageVersion = LanguageVersion.Latest,
                GenerateMetadataSourceChecksumAttributes = true,
                RootNamespace = "Asp",
                SupportLocalizedComponentNames = true,
                SuppressRazorSourceGenerator   = true,
            };

            // Act
            var equals = options1.Equals(options2);

            // Assert
            Assert.True(equals);
        }
Esempio n. 5
0
        public void Equals_ReturnsFalse_IfConfigurationChanged()
        {
            // Arrange
            var options1 = new RazorSourceGenerationOptions
            {
                Configuration = RazorConfiguration.Default,
            };

            var options2 = new RazorSourceGenerationOptions
            {
                Configuration = RazorConfiguration.Create(RazorLanguageVersion.Latest, "3.1", Enumerable.Empty <RazorExtension>()),
            };

            // Act
            var equals = options1.Equals(options2);

            // Assert
            Assert.False(equals);
        }
Esempio n. 6
0
        public void Equals_ReturnsFalse_IfLanguageChanged()
        {
            // Arrange
            var options1 = new RazorSourceGenerationOptions
            {
                CSharpLanguageVersion = LanguageVersion.CSharp10,
                Configuration         = RazorConfiguration.Default,
            };

            var options2 = new RazorSourceGenerationOptions
            {
                Configuration         = RazorConfiguration.Default,
                CSharpLanguageVersion = LanguageVersion.CSharp9,
            };

            // Act
            var equals = options1.Equals(options2);

            // Assert
            Assert.False(equals);
        }
        private static RazorProjectEngine GetGenerationProjectEngine(
            IReadOnlyList <TagHelperDescriptor> tagHelpers,
            SourceGeneratorProjectItem item,
            IEnumerable <SourceGeneratorProjectItem> imports,
            RazorSourceGenerationOptions razorSourceGeneratorOptions)
        {
            var fileSystem = new VirtualRazorProjectFileSystem();

            fileSystem.Add(item);
            foreach (var import in imports)
            {
                fileSystem.Add(import);
            }

            var projectEngine = RazorProjectEngine.Create(razorSourceGeneratorOptions.Configuration, fileSystem, b =>
            {
                b.Features.Add(new DefaultTypeNameFeature());
                b.SetRootNamespace(razorSourceGeneratorOptions.RootNamespace);

                b.Features.Add(new ConfigureRazorCodeGenerationOptions(options =>
                {
                    options.SuppressMetadataSourceChecksumAttributes = !razorSourceGeneratorOptions.GenerateMetadataSourceChecksumAttributes;
                    options.SupportLocalizedComponentNames           = razorSourceGeneratorOptions.SupportLocalizedComponentNames;
                }));

                b.Features.Add(new StaticTagHelperFeature {
                    TagHelpers = tagHelpers
                });
                b.Features.Add(new DefaultTagHelperDescriptorProvider());

                CompilerFeatures.Register(b);
                RazorExtensions.Register(b);

                b.SetCSharpLanguageVersion(razorSourceGeneratorOptions.CSharpLanguageVersion);
            });

            return(projectEngine);
        }
Esempio n. 8
0
        public void Equals_ReturnsFalse_IfGenerateMetadataSourceChecksumAttributesChanged()
        {
            // Arrange
            var options1 = new RazorSourceGenerationOptions
            {
                CSharpLanguageVersion = LanguageVersion.CSharp10,
                Configuration         = RazorConfiguration.Default,
                GenerateMetadataSourceChecksumAttributes = false,
            };

            var options2 = new RazorSourceGenerationOptions
            {
                Configuration         = RazorConfiguration.Default,
                CSharpLanguageVersion = LanguageVersion.CSharp9,
                GenerateMetadataSourceChecksumAttributes = true,
            };

            // Act
            var equals = options1.Equals(options2);

            // Assert
            Assert.False(equals);
        }