예제 #1
0
        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());
        }
예제 #2
0
        public void CreatesNewPSResourceGroupDeploymentWithUserTemplate()
        {
            PSDeploymentCmdletParameters expectedParameters = new PSDeploymentCmdletParameters()
            {
                TemplateFile   = templateFile,
                DeploymentName = deploymentName,
                Tags           = new Dictionary <string, string>(this.deploymentTags)
            };
            PSDeploymentCmdletParameters actualParameters = new PSDeploymentCmdletParameters();
            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.ExecuteResourceGroupDeployment(
                                          It.IsAny <PSDeploymentCmdletParameters>()))
            .Returns(expected)
            .Callback((PSDeploymentCmdletParameters p) => { actualParameters = p; });

            cmdlet.ResourceGroupName = resourceGroupName;
            cmdlet.Name         = expectedParameters.DeploymentName;
            cmdlet.TemplateFile = expectedParameters.TemplateFile;
            cmdlet.Tag          = new Hashtable(this.deploymentTags);

            cmdlet.ExecuteCmdlet();

            actualParameters.DeploymentName.Should().Equals(expectedParameters.DeploymentName);
            actualParameters.TemplateFile.Should().Equals(expectedParameters.TemplateFile);
            actualParameters.TemplateParameterObject.Should().NotBeNull();
            actualParameters.OnErrorDeployment.Should().BeNull();
            actualParameters.Tags.Should().NotBeNull();

            var differenceTags = actualParameters.Tags
                                 .Where(entry => expectedParameters.Tags[entry.Key] != entry.Value);

            differenceTags.Should().BeEmpty();

            commandRuntimeMock.Verify(f => f.WriteObject(expected), Times.Once());
        }