public void CreatesNewPSResourceGroupDeploymentWithUserTemplate()
{
PSCreateResourceGroupDeploymentParameters expectedParameters = new PSCreateResourceGroupDeploymentParameters()
{
TemplateFile = templateFile,
DeploymentName = deploymentName,
};
PSCreateResourceGroupDeploymentParameters actualParameters = new PSCreateResourceGroupDeploymentParameters();
PSResourceGroupDeployment expected = new PSResourceGroupDeployment()
{
Mode = DeploymentMode.Incremental,
DeploymentName = deploymentName,
CorrelationId = "123",
Outputs = new Dictionary<string, DeploymentVariable>()
{
{ "Variable1", new DeploymentVariable() { Value = "true", Type = "bool" } },
{ "Variable2", new DeploymentVariable() { Value = "10", Type = "int" } },
{ "Variable3", new DeploymentVariable() { Value = "hello world", Type = "string" } }
},
Parameters = new Dictionary<string, DeploymentVariable>()
{
{ "Parameter1", new DeploymentVariable() { Value = "true", Type = "bool" } },
{ "Parameter2", new DeploymentVariable() { Value = "10", Type = "int" } },
{ "Parameter3", new DeploymentVariable() { Value = "hello world", Type = "string" } }
},
ProvisioningState = ProvisioningState.Succeeded.ToString(),
ResourceGroupName = resourceGroupName,
TemplateLink = new TemplateLink()
{
ContentVersion = "1.0",
Uri = "http://mytemplate.com"
},
Timestamp = new DateTime(2014, 2, 13)
};
resourcesClientMock.Setup(f => f.ExecuteDeployment(
It.IsAny<PSCreateResourceGroupDeploymentParameters>()))
.Returns(expected)
.Callback((PSCreateResourceGroupDeploymentParameters p) => { actualParameters = p; });
cmdlet.ResourceGroupName = resourceGroupName;
cmdlet.Name = expectedParameters.DeploymentName;
cmdlet.TemplateFile = expectedParameters.TemplateFile;
cmdlet.ExecuteCmdlet();
Assert.Equal(expectedParameters.DeploymentName, actualParameters.DeploymentName);
Assert.Equal(expectedParameters.TemplateFile, actualParameters.TemplateFile);
Assert.NotNull(actualParameters.TemplateParameterObject);
commandRuntimeMock.Verify(f => f.WriteObject(expected), Times.Once());
}
}