From ae86bf229482a3fd01a93d6d48606120ad1a2815 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 5 Apr 2021 17:46:15 +0800 Subject: [PATCH] Add Custom_TemplateReferences_Test. --- .../AbpCompiledViewProviderOptions_Tests.cs | 48 +++++++++++++++++++ .../RazorTestTemplateDefinitionProvider.cs | 6 ++- .../SampleTemplates/RazorTestTemplates.cs | 7 +++ .../Razor/SampleTemplates/TestTemplate.cshtml | 6 +++ 4 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 framework/test/Volo.Abp.TextTemplating.Razor.Tests/Volo/Abp/TextTemplating/Razor/AbpCompiledViewProviderOptions_Tests.cs create mode 100644 framework/test/Volo.Abp.TextTemplating.Razor.Tests/Volo/Abp/TextTemplating/Razor/SampleTemplates/RazorTestTemplates.cs create mode 100644 framework/test/Volo.Abp.TextTemplating.Razor.Tests/Volo/Abp/TextTemplating/Razor/SampleTemplates/TestTemplate.cshtml diff --git a/framework/test/Volo.Abp.TextTemplating.Razor.Tests/Volo/Abp/TextTemplating/Razor/AbpCompiledViewProviderOptions_Tests.cs b/framework/test/Volo.Abp.TextTemplating.Razor.Tests/Volo/Abp/TextTemplating/Razor/AbpCompiledViewProviderOptions_Tests.cs new file mode 100644 index 0000000000..9f4cd3ecaa --- /dev/null +++ b/framework/test/Volo.Abp.TextTemplating.Razor.Tests/Volo/Abp/TextTemplating/Razor/AbpCompiledViewProviderOptions_Tests.cs @@ -0,0 +1,48 @@ +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Threading.Tasks; +using Microsoft.CodeAnalysis; +using Microsoft.Extensions.DependencyInjection; +using Shouldly; +using Volo.Abp.TextTemplating.Razor.SampleTemplates; +using Xunit; + +namespace Volo.Abp.TextTemplating.Razor +{ + public class AbpCompiledViewProviderOptions_Tests : TemplateDefinitionTests + { + private readonly IAbpCompiledViewProvider _compiledViewProvider; + private readonly ITemplateDefinitionManager _templateDefinitionManager; + + public AbpCompiledViewProviderOptions_Tests() + { + _templateDefinitionManager = GetRequiredService(); + _compiledViewProvider = GetRequiredService(); + } + + protected override void AfterAddApplication(IServiceCollection services) + { + services.Configure(options => + { + options.TemplateReferences.Add(RazorTestTemplates.TestTemplate, new List() + { + Assembly.Load("Microsoft.Extensions.Logging.Abstractions") + } + .Select(x => MetadataReference.CreateFromFile(x.Location)) + .ToList()); + }); + base.AfterAddApplication(services); + } + + [Fact] + public async Task Custom_TemplateReferences_Test() + { + var templateDefinition = _templateDefinitionManager.GetOrNull(RazorTestTemplates.TestTemplate); + + var assembly = await _compiledViewProvider.GetAssemblyAsync(templateDefinition); + + assembly.GetReferencedAssemblies().ShouldContain(x => x.Name == "Microsoft.Extensions.Logging.Abstractions"); + } + } +} diff --git a/framework/test/Volo.Abp.TextTemplating.Razor.Tests/Volo/Abp/TextTemplating/Razor/RazorTestTemplateDefinitionProvider.cs b/framework/test/Volo.Abp.TextTemplating.Razor.Tests/Volo/Abp/TextTemplating/Razor/RazorTestTemplateDefinitionProvider.cs index 5fdd0a786b..3bb1d7f831 100644 --- a/framework/test/Volo.Abp.TextTemplating.Razor.Tests/Volo/Abp/TextTemplating/Razor/RazorTestTemplateDefinitionProvider.cs +++ b/framework/test/Volo.Abp.TextTemplating.Razor.Tests/Volo/Abp/TextTemplating/Razor/RazorTestTemplateDefinitionProvider.cs @@ -1,4 +1,6 @@ -namespace Volo.Abp.TextTemplating.Razor +using Volo.Abp.TextTemplating.Razor.SampleTemplates; + +namespace Volo.Abp.TextTemplating.Razor { public class RazorTestTemplateDefinitionProvider : TemplateDefinitionProvider { @@ -15,6 +17,8 @@ context.GetOrNull(TestTemplates.ShowDecimalNumber)? .WithVirtualFilePath("/SampleTemplates/ShowDecimalNumber.cshtml", true); + + context.Add(new TemplateDefinition(RazorTestTemplates.TestTemplate).WithVirtualFilePath("/SampleTemplates/TestTemplate.cshtml", true)); } } } diff --git a/framework/test/Volo.Abp.TextTemplating.Razor.Tests/Volo/Abp/TextTemplating/Razor/SampleTemplates/RazorTestTemplates.cs b/framework/test/Volo.Abp.TextTemplating.Razor.Tests/Volo/Abp/TextTemplating/Razor/SampleTemplates/RazorTestTemplates.cs new file mode 100644 index 0000000000..3fa87f7d90 --- /dev/null +++ b/framework/test/Volo.Abp.TextTemplating.Razor.Tests/Volo/Abp/TextTemplating/Razor/SampleTemplates/RazorTestTemplates.cs @@ -0,0 +1,7 @@ +namespace Volo.Abp.TextTemplating.Razor.SampleTemplates +{ + public static class RazorTestTemplates + { + public const string TestTemplate = "TestTemplate"; + } +} diff --git a/framework/test/Volo.Abp.TextTemplating.Razor.Tests/Volo/Abp/TextTemplating/Razor/SampleTemplates/TestTemplate.cshtml b/framework/test/Volo.Abp.TextTemplating.Razor.Tests/Volo/Abp/TextTemplating/Razor/SampleTemplates/TestTemplate.cshtml new file mode 100644 index 0000000000..3de93e1e40 --- /dev/null +++ b/framework/test/Volo.Abp.TextTemplating.Razor.Tests/Volo/Abp/TextTemplating/Razor/SampleTemplates/TestTemplate.cshtml @@ -0,0 +1,6 @@ +@using Microsoft.Extensions.DependencyInjection +@using Microsoft.Extensions.Logging +@inherits Volo.Abp.TextTemplating.Razor.RazorTemplatePageBase +@{ + var loggerFactory = ServiceProvider.GetService(); +}