|
1 | 1 | // Copyright (c) Weihan Li. All rights reserved.
|
2 | 2 | // Licensed under the Apache license.
|
3 | 3 |
|
| 4 | +using Microsoft.Extensions.Configuration; |
4 | 5 | using WeihanLi.Common.Template;
|
| 6 | +using WeihanLi.Extensions; |
5 | 7 | using Xunit;
|
6 | 8 |
|
7 | 9 | namespace WeihanLi.Common.Test.TemplateTest;
|
8 | 10 |
|
9 | 11 | public class TemplateRendererTest
|
10 | 12 | {
|
| 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 | + |
11 | 43 | [Fact]
|
12 | 44 | public async Task EnvRenderTest()
|
13 | 45 | {
|
14 | 46 | var text = "Hello {{$env hostname}}";
|
15 |
| - var renderedText = await TemplateEngine.CreateDefault().RenderAsync(text); |
| 47 | + var renderedText = await _templateEngine.RenderAsync(text); |
16 | 48 | Assert.Equal($"Hello {Environment.GetEnvironmentVariable("hostname")}", renderedText);
|
17 | 49 | }
|
18 | 50 | }
|
0 commit comments