Skip to content

Commit aad8d76

Browse files
committed
made separator in join macro optional
1 parent ddcb41b commit aad8d76

File tree

2 files changed

+4
-21
lines changed
  • src/Microsoft.TemplateEngine.Orchestrator.RunnableProjects/Macros
  • test/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.UnitTests/MacroTests

2 files changed

+4
-21
lines changed

src/Microsoft.TemplateEngine.Orchestrator.RunnableProjects/Macros/JoinMacroConfig.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ internal class JoinMacroConfig : BaseMacroConfig<JoinMacro, JoinMacroConfig>
1515
private const string SymbolsTypePropertyName = "type";
1616
private const string SymbolsValuePropertyName = "value";
1717

18-
internal JoinMacroConfig(JoinMacro macro, string variableName, string? dataType, IReadOnlyList<(JoinType, string)> symbols, string separator, bool removeEmptyValues)
18+
internal JoinMacroConfig(JoinMacro macro, string variableName, string? dataType, IReadOnlyList<(JoinType, string)> symbols, string separator = "", bool removeEmptyValues = false)
1919
: base(macro, variableName, dataType)
2020
{
2121
Symbols = symbols ?? throw new ArgumentNullException(nameof(symbols));
@@ -26,7 +26,7 @@ internal JoinMacroConfig(JoinMacro macro, string variableName, string? dataType,
2626
internal JoinMacroConfig(JoinMacro macro, IGeneratedSymbolConfig generatedSymbolConfig)
2727
: base(macro, generatedSymbolConfig.VariableName, generatedSymbolConfig.DataType)
2828
{
29-
Separator = GetMandatoryParameterValue(generatedSymbolConfig, "separator");
29+
Separator = GetOptionalParameterValue(generatedSymbolConfig, "separator") ?? string.Empty;
3030
RemoveEmptyValues = GetOptionalParameterValue(generatedSymbolConfig, "removeEmptyValues", ConvertJTokenToBool);
3131

3232
List<(JoinType Type, string Value)> symbolsList = new();

test/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.UnitTests/MacroTests/JoinMacroTests.cs

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -127,21 +127,6 @@ public void ObsoleteEvaluateConfigTest()
127127
Assert.Equal(convertedValue, expectedValue);
128128
}
129129

130-
[Fact]
131-
public void InvalidConfigurationTest_MissingSeparator()
132-
{
133-
JoinMacro macro = new();
134-
135-
Dictionary<string, string> jsonParameters = new(StringComparer.OrdinalIgnoreCase);
136-
string symbols =
137-
$"[ {{\"type\":\"const\" , \"value\":\"true\" }}, {{\"type\":\"ref\" , \"value\":\"ref\" }} ]";
138-
jsonParameters.Add("symbols", symbols);
139-
140-
VariableCollection variables = new();
141-
TemplateAuthoringException ex = Assert.Throws<TemplateAuthoringException>(() => macro.Evaluate(_engineEnvironmentSettings, variables, new GeneratedSymbol("test", "join", jsonParameters)));
142-
Assert.Equal("Generated symbol 'test' of type 'join' should have 'separator' property defined.", ex.Message);
143-
}
144-
145130
[Fact]
146131
public void InvalidConfigurationTest_MissingSymbols()
147132
{
@@ -196,15 +181,13 @@ public void DefaultConfigurationTest()
196181
{
197182
JoinMacro macro = new();
198183

199-
Dictionary<string, string> jsonParameters = new(StringComparer.OrdinalIgnoreCase)
200-
{
201-
{ "separator", JExtensions.ToJsonString(",") }
202-
};
184+
Dictionary<string, string> jsonParameters = new(StringComparer.OrdinalIgnoreCase);
203185
string symbols = $"[ {{\"value\":\"rep\" }} ]";
204186
jsonParameters.Add("symbols", symbols);
205187

206188
JoinMacroConfig config = new(macro, new GeneratedSymbol("test", "join", jsonParameters));
207189

190+
Assert.Equal(string.Empty, config.Separator);
208191
Assert.False(config.RemoveEmptyValues);
209192
Assert.Equal(JoinMacroConfig.JoinType.Const, config.Symbols.Single().Type);
210193
}

0 commit comments

Comments
 (0)