Skip to content

Commit f273aa0

Browse files
committed
refactor: improve DefaultTemplateRenderer
1 parent e792f34 commit f273aa0

File tree

2 files changed

+34
-2
lines changed

2 files changed

+34
-2
lines changed

src/WeihanLi.Common/Template/DefaultTemplateRenderer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public async Task<string> RenderAsync(TemplateRenderContext context, object? glo
1616
var parameters = globals.ParseParamDictionary();
1717
if (parameters is { Count: > 0 })
1818
{
19-
foreach (var input in context.Inputs.Keys)
19+
foreach (var input in context.Inputs.Keys.Where(x => x.Prefix is null))
2020
{
2121
if (parameters.TryGetValue(input.VariableName, out var value))
2222
{
Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,50 @@
11
// Copyright (c) Weihan Li. All rights reserved.
22
// Licensed under the Apache license.
33

4+
using Microsoft.Extensions.Configuration;
45
using WeihanLi.Common.Template;
6+
using WeihanLi.Extensions;
57
using Xunit;
68

79
namespace WeihanLi.Common.Test.TemplateTest;
810

911
public class TemplateRendererTest
1012
{
13+
private readonly TemplateEngine _templateEngine = TemplateEngine.CreateDefault(builder =>
14+
{
15+
builder.ConfigureOptions(options =>
16+
{
17+
options.Configuration = new ConfigurationBuilder()
18+
.AddInMemoryCollection(
19+
[
20+
new KeyValuePair<string, string?>("Name", "test")
21+
])
22+
.Build();
23+
});
24+
});
25+
26+
[Fact]
27+
public async Task VariableRenderTest()
28+
{
29+
var name = "mike";
30+
var text = "Hello {{ Name | toTitle }}";
31+
var renderedText = await _templateEngine.RenderAsync(text, new { Name = name });
32+
Assert.Equal($"Hello {name.ToTitleCase()}", renderedText);
33+
}
34+
35+
[Fact]
36+
public async Task ConfigRenderTest()
37+
{
38+
var text = "Hello {{ $config Name | toTitle }}";
39+
var renderedText = await _templateEngine.RenderAsync(text, new { Name = "mike" });
40+
Assert.Equal($"Hello {"test".ToTitleCase()}", renderedText);
41+
}
42+
1143
[Fact]
1244
public async Task EnvRenderTest()
1345
{
1446
var text = "Hello {{$env hostname}}";
15-
var renderedText = await TemplateEngine.CreateDefault().RenderAsync(text);
47+
var renderedText = await _templateEngine.RenderAsync(text);
1648
Assert.Equal($"Hello {Environment.GetEnvironmentVariable("hostname")}", renderedText);
1749
}
1850
}

0 commit comments

Comments
 (0)