Skip to content

Commit 0af8446

Browse files
authored
[Resources] Small fix to Test-AzResourceGroupDeployment (#27989)
1 parent a05f4b2 commit 0af8446

File tree

3 files changed

+37
-6
lines changed

3 files changed

+37
-6
lines changed

src/Resources/ResourceManager/Implementation/CmdletBase/TestDeploymentCmdletBase.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,11 @@ public override object GetDynamicParameters()
3535

3636
public void WriteOutput(TemplateValidationInfo validationInfo)
3737
{
38-
if (validationInfo.Errors.Count == 0 && !SuppressDiagnostics.IsPresent)
38+
if (validationInfo.Errors.Count > 0)
39+
{
40+
WriteObject(validationInfo.Errors.Select(e => e.ToPSResourceManagerError()).ToList());
41+
}
42+
else if (!SuppressDiagnostics.IsPresent && validationInfo.Diagnostics.Count > 0)
3943
{
4044
var builder = new ColoredStringBuilder();
4145

@@ -45,10 +49,6 @@ public void WriteOutput(TemplateValidationInfo validationInfo)
4549

4650
WriteWarning(builder.ToString());
4751
}
48-
else
49-
{
50-
WriteObject(validationInfo.Errors.Select(e => e.ToPSResourceManagerError()).ToList());
51-
}
5252
}
5353

5454
}

src/Resources/Resources.Test/ResourceGroupDeployments/TestAzureResourceGroupDeploymentCommandTests.cs

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,8 @@ public void ValidatesPSResourceGroupDeploymentWithUserTemplateWithDiagnosticsSup
195195
PSObject expectedObject = new PSObject(JTokenExtensions.ConvertPropertyValueForPsObject(propertyValue: expectedToken));
196196

197197
commandRuntimeMock.Verify(f => f.WriteObject(expectedObject, true), Times.Never());
198-
commandRuntimeMock.Verify(f => f.WriteObject(new List<PSResourceManagerError>()), Times.Once());
198+
commandRuntimeMock.Verify(f => f.WriteWarning(It.IsAny<string>()), Times.Never());
199+
commandRuntimeMock.Verify(f => f.WriteObject(It.IsAny<List<PSResourceManagerError>>()), Times.Never());
199200
}
200201

201202
[Fact]
@@ -228,5 +229,34 @@ public void ValidatesPSResourceGroupDeploymentWithUserTemplateProviderNoRbac()
228229

229230
Assert.NotNull(actualParameters.TemplateParameterObject);
230231
}
232+
233+
[Fact]
234+
[Trait(Category.AcceptanceType, Category.CheckIn)]
235+
public void ValidatesPSResourceGroupDeploymentWithUserTemplateNoDiagnosticsNoErrors()
236+
{
237+
PSDeploymentCmdletParameters expectedParameters = new PSDeploymentCmdletParameters()
238+
{
239+
TemplateFile = templateFile
240+
};
241+
PSDeploymentCmdletParameters actualParameters = new PSDeploymentCmdletParameters();
242+
243+
TemplateValidationInfo expectedResults = new(new DeploymentValidateResult());
244+
245+
resourcesClientMock.Setup(f => f.ValidateDeployment(
246+
It.IsAny<PSDeploymentCmdletParameters>()))
247+
.Returns(expectedResults)
248+
.Callback((PSDeploymentCmdletParameters p) => { actualParameters = p; });
249+
250+
cmdlet.ResourceGroupName = resourceGroupName;
251+
cmdlet.TemplateFile = expectedParameters.TemplateFile;
252+
253+
cmdlet.ExecuteCmdlet();
254+
255+
Assert.Equal(expectedParameters.TemplateFile, actualParameters.TemplateFile);
256+
Assert.NotNull(actualParameters.TemplateParameterObject);
257+
258+
commandRuntimeMock.Verify(f => f.WriteWarning(It.IsAny<string>()), Times.Never());
259+
commandRuntimeMock.Verify(f => f.WriteObject(It.IsAny<List<PSResourceManagerError>>()), Times.Never());
260+
}
231261
}
232262
}

src/Resources/Resources/ChangeLog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
-->
2020

2121
## Upcoming Release
22+
* Fixed empty warning output issue for cmdlet `Test-AzResourceGroupDeployment` [#27888]
2223

2324
## Version 8.0.0
2425
* [Breaking Change] Updated API version of resource types from latest to DefaultApiVersion for cmdlets `*-AzResource` and `Invoke-AzResourceAction`.

0 commit comments

Comments
 (0)