Skip to content

Commit 03c1024

Browse files
committed
Make tests pass
1 parent 1c540c4 commit 03c1024

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

src/Microsoft.TemplateEngine.Edge/TemplateConstraintManager.cs

+9-4
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public class TemplateConstraintManager : IDisposable
1515
private readonly ILogger<TemplateConstraintManager> _logger;
1616
private readonly CancellationTokenSource _cancellationTokenSource = new CancellationTokenSource();
1717
private readonly Dictionary<string, ITemplateConstraint> _templateConstraints = new();
18-
private readonly Dictionary<string, TemplateConstraintResult> _evaluatedConstraints = new();
18+
private readonly Dictionary<(string Type, string? Args), TemplateConstraintResult> _evaluatedConstraints = new();
1919

2020
public TemplateConstraintManager(IEngineEnvironmentSettings engineEnvironmentSettings)
2121
{
@@ -58,21 +58,26 @@ public async Task<IReadOnlyList<ITemplateConstraint>> GetConstraintsAsync(IEnume
5858
public async Task<TemplateConstraintResult> EvaluateConstraintAsync(string type, string? args, CancellationToken cancellationToken)
5959
{
6060
cancellationToken.ThrowIfCancellationRequested();
61-
if (_evaluatedConstraints.TryGetValue(type, out TemplateConstraintResult result))
61+
if (_evaluatedConstraints.TryGetValue((type, args), out TemplateConstraintResult result))
6262
{
6363
return result;
6464
}
6565

6666
if (!_templateConstraints.TryGetValue(type, out ITemplateConstraint constraint))
6767
{
68+
if (_evaluatedConstraints.TryGetValue((type, null), out result))
69+
{
70+
return result;
71+
}
72+
6873
_logger.LogDebug($"The constraint '{type}' is unknown.");
6974
return TemplateConstraintResult.CreateInitializationFailure(type, string.Format(LocalizableStrings.TemplateConstraintManager_Error_UnknownType, type));
7075
}
7176

7277
try
7378
{
7479
result = constraint.Evaluate(args);
75-
_evaluatedConstraints.Add(type, result);
80+
_evaluatedConstraints.Add((type, args), result);
7681
return result;
7782
}
7883
catch (Exception e)
@@ -159,7 +164,7 @@ private async Task InitializeTemplateConstraints(IEngineEnvironmentSettings engi
159164
{
160165
exception = exception is not null ? exception.InnerException ?? exception : exception;
161166
_logger.LogDebug($"The constraint '{constraintFactory.Type}' failed to be initialized, details: {exception}.");
162-
_evaluatedConstraints.Add(constraintFactory.Type, TemplateConstraintResult.CreateInitializationFailure(constraintFactory.Type, string.Format(LocalizableStrings.TemplateConstraintManager_Error_FailedToInitialize, constraintFactory.Type, exception?.Message)));
167+
_evaluatedConstraints.Add((constraintFactory.Type, null), TemplateConstraintResult.CreateInitializationFailure(constraintFactory.Type, string.Format(LocalizableStrings.TemplateConstraintManager_Error_FailedToInitialize, constraintFactory.Type, exception?.Message)));
163168
}
164169
else
165170
{

test/Microsoft.TemplateEngine.Edge.UnitTests/TemplateConstraintManagerTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ public LongRunningTestConstraintFactory(string type)
227227

228228
public async Task<ITemplateConstraint> CreateTemplateConstraintAsync(IEngineEnvironmentSettings environmentSettings, CancellationToken cancellationToken)
229229
{
230-
await Task.Delay(30000);
230+
await Task.Delay(3000);
231231
throw new Exception("creation failed");
232232
}
233233
}

0 commit comments

Comments
 (0)