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); }
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); }
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); }
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); }
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); }
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); }
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); }