public void GetUpdatedParametersFileContents_WithBicepDeploymentParameterThatIsAlreadyInParametersFile_DoesNothing() { var testOutputPath = Path.Combine(TestContext.ResultsDirectory, Guid.NewGuid().ToString()); var bicepFilePath = FileHelper.SaveResultFile(TestContext, "input.bicep", string.Empty, testOutputPath); var parametersFileContents = @"{ ""location"": { ""value"": ""eastus"" }, ""sku"": { ""value"": ""testSku"" } }"; var parametersFilePath = FileHelper.SaveResultFile(TestContext, "input.parameters.json", parametersFileContents, testOutputPath); var bicepUpdatedDeploymentParameter = new BicepUpdatedDeploymentParameter("location", "westus", false, ParameterType.String); var bicepUpdatedDeploymentParameters = new List <BicepUpdatedDeploymentParameter> { bicepUpdatedDeploymentParameter }; var result = DeploymentParametersHelper.GetUpdatedParametersFileContents( bicepFilePath, "input.parameters.json", parametersFilePath, ParametersFileUpdateOption.Update, bicepUpdatedDeploymentParameters); result.Should().BeEquivalentToIgnoringNewlines(parametersFileContents); }
public void GetUpdatedParametersFileContents_WithInvalidParametersFile_ShouldThrowException() { var testOutputPath = Path.Combine(TestContext.ResultsDirectory, Guid.NewGuid().ToString()); var bicepFilePath = FileHelper.SaveResultFile(TestContext, "input.bicep", string.Empty, testOutputPath); var parametersFileContents = @"{ ""location"": { ""value"": ""eastus"" }, ""sku"": { ""value"": ""testSku"""; var parametersFilePath = FileHelper.SaveResultFile(TestContext, "input.parameters.json", parametersFileContents, testOutputPath); var bicepUpdatedDeploymentParameter1 = new BicepUpdatedDeploymentParameter("name", "test", false, ParameterType.String); var bicepUpdatedDeploymentParameter2 = new BicepUpdatedDeploymentParameter("id", "testId", false, ParameterType.String); var bicepUpdatedDeploymentParameters = new List <BicepUpdatedDeploymentParameter> { bicepUpdatedDeploymentParameter1, bicepUpdatedDeploymentParameter2 }; Action action = () => DeploymentParametersHelper.GetUpdatedParametersFileContents( bicepFilePath, "input.parameters.json", parametersFilePath, ParametersFileUpdateOption.Update, bicepUpdatedDeploymentParameters); action.Should().Throw <Exception>(); }
public void GetUpdatedParametersFileContents_WithOverwriteOptionAndParametersFileWithSameNameInCurrentDirectory_ShouldOverwriteParametersFile() { var testOutputPath = Path.Combine(TestContext.ResultsDirectory, Guid.NewGuid().ToString()); var bicepFilePath = FileHelper.SaveResultFile(TestContext, "input.bicep", string.Empty, testOutputPath); var parametersFileContents = @"{ ""$schema"": ""https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#"", ""contentVersion"": ""1.0.0.0"", ""parameters"": { ""location"": { ""value"": ""eastus"" } } }"; FileHelper.SaveResultFile(TestContext, "input.parameters.json", parametersFileContents, testOutputPath); var bicepUpdatedDeploymentParameter1 = new BicepUpdatedDeploymentParameter("location", "westus", false, ParameterType.String); var bicepUpdatedDeploymentParameter2 = new BicepUpdatedDeploymentParameter("sku", "testSku", false, ParameterType.String); var bicepUpdatedDeploymentParameters = new List <BicepUpdatedDeploymentParameter> { bicepUpdatedDeploymentParameter1, bicepUpdatedDeploymentParameter2 }; var result = DeploymentParametersHelper.GetUpdatedParametersFileContents( bicepFilePath, "input.parameters.json", string.Empty, ParametersFileUpdateOption.Create, bicepUpdatedDeploymentParameters); var expectedParametersFileContentsWrittenToDisk = @"{ ""$schema"": ""https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#"", ""contentVersion"": ""1.0.0.0"", ""parameters"": { ""location"": { ""value"": ""westus"" }, ""sku"": { ""value"": ""testSku"" } } }"; var expectedParametersFileContentsUsedInDeployment = @"{ ""location"": { ""value"": ""westus"" }, ""sku"": { ""value"": ""testSku"" } }"; result.Should().BeEquivalentToIgnoringNewlines(expectedParametersFileContentsUsedInDeployment); var expectedParametersFilePath = Path.Combine(testOutputPath, "input.parameters.json"); File.Exists(expectedParametersFilePath).Should().BeTrue(); File.ReadAllText(expectedParametersFilePath).Should().BeEquivalentToIgnoringNewlines(expectedParametersFileContentsWrittenToDisk); }
public void GetUpdatedParametersFileContents_WithNonEmptyBicepUpdatedDeploymentParametersAndParametersFile_ShouldUpdateParametersFile() { var testOutputPath = Path.Combine(TestContext.ResultsDirectory, Guid.NewGuid().ToString()); var bicepFilePath = FileHelper.SaveResultFile(TestContext, "input.bicep", string.Empty, testOutputPath); var parametersFileContents = @"{ ""location"": { ""value"": ""eastus"" }, ""sku"": { ""value"": ""testSku"" } }"; var parametersFilePath = FileHelper.SaveResultFile(TestContext, "input.parameters.json", parametersFileContents, testOutputPath); var bicepUpdatedDeploymentParameter1 = new BicepUpdatedDeploymentParameter("name", "test", false, ParameterType.String); var bicepUpdatedDeploymentParameter2 = new BicepUpdatedDeploymentParameter("id", "testId", false, ParameterType.String); var bicepUpdatedDeploymentParameters = new List <BicepUpdatedDeploymentParameter> { bicepUpdatedDeploymentParameter1, bicepUpdatedDeploymentParameter2 }; var result = DeploymentParametersHelper.GetUpdatedParametersFileContents( bicepFilePath, "input.parameters.json", parametersFilePath, ParametersFileUpdateOption.Update, bicepUpdatedDeploymentParameters); var expectedParametersFileContents = @"{ ""name"": { ""value"": ""test"" }, ""id"": { ""value"": ""testId"" }, ""location"": { ""value"": ""eastus"" }, ""sku"": { ""value"": ""testSku"" } }"; result.Should().BeEquivalentToIgnoringNewlines(expectedParametersFileContents); File.ReadAllText(parametersFilePath).Should().BeEquivalentToIgnoringNewlines(expectedParametersFileContents); }
public void GetUpdatedParametersFileContents_WithParametersOfTypeIntAndBool_ShouldDoAppropriateConversionAndUpdateParametersFile() { var testOutputPath = Path.Combine(TestContext.ResultsDirectory, Guid.NewGuid().ToString()); var bicepFilePath = FileHelper.SaveResultFile(TestContext, "input.bicep", string.Empty, testOutputPath); var parametersFileContents = @"{ ""location"": { ""value"": ""eastus"" } }"; var parametersFilePath = FileHelper.SaveResultFile(TestContext, "input.parameters.json", parametersFileContents, testOutputPath); var bicepUpdatedDeploymentParameter1 = new BicepUpdatedDeploymentParameter("id", "test", false, ParameterType.String); var bicepUpdatedDeploymentParameter2 = new BicepUpdatedDeploymentParameter("isSku", "false", false, ParameterType.Bool); var bicepUpdatedDeploymentParameter3 = new BicepUpdatedDeploymentParameter("count", "2", false, ParameterType.Int); var bicepUpdatedDeploymentParameters = new List <BicepUpdatedDeploymentParameter> { bicepUpdatedDeploymentParameter1, bicepUpdatedDeploymentParameter2, bicepUpdatedDeploymentParameter3 }; var result = DeploymentParametersHelper.GetUpdatedParametersFileContents( bicepFilePath, "input.parameters.json", parametersFilePath, ParametersFileUpdateOption.Update, bicepUpdatedDeploymentParameters); var expectedParametersFileContents = @"{ ""id"": { ""value"": ""test"" }, ""isSku"": { ""value"": false }, ""count"": { ""value"": 2 }, ""location"": { ""value"": ""eastus"" } }"; result.Should().BeEquivalentToIgnoringNewlines(expectedParametersFileContents); File.ReadAllText(parametersFilePath).Should().BeEquivalentToIgnoringNewlines(expectedParametersFileContents); }
public void GetUpdatedParametersFileContents_WithNonEmptyBicepUpdatedDeploymentParameters_ShouldReturnUpdatedParametersFileContents() { var parametersFileContents = @"{ ""location"": { ""value"": ""westus"" }, ""name"": { ""value"": ""test"" } }"; var bicepFilePath = FileHelper.SaveResultFile(TestContext, "input.bicep", string.Empty); var parametersFilePath = FileHelper.SaveResultFile(TestContext, "parameters.json", parametersFileContents); var bicepUpdatedDeploymentParameter1 = new BicepUpdatedDeploymentParameter("location", "eastus", false, ParameterType.String); var bicepUpdatedDeploymentParameter2 = new BicepUpdatedDeploymentParameter("sku", "testSku", false, ParameterType.String); var bicepUpdatedDeploymentParameters = new List <BicepUpdatedDeploymentParameter> { bicepUpdatedDeploymentParameter1, bicepUpdatedDeploymentParameter2 }; var result = DeploymentParametersHelper.GetUpdatedParametersFileContents( bicepFilePath, "parameters.json", parametersFilePath, ParametersFileUpdateOption.None, bicepUpdatedDeploymentParameters); var expected = @"{ ""sku"": { ""value"": ""testSku"" }, ""location"": { ""value"": ""westus"" }, ""name"": { ""value"": ""test"" } }"; result.Should().BeEquivalentToIgnoringNewlines(expected); }
public void GetUpdatedParametersFileContents_WithArmTemplateStyleParametersFile_ShouldUpdateParametersFile() { var testOutputPath = Path.Combine(TestContext.ResultsDirectory, Guid.NewGuid().ToString()); var bicepFilePath = FileHelper.SaveResultFile(TestContext, "input.bicep", string.Empty, testOutputPath); var parametersFileContents = @"{ ""$schema"": ""https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#"", ""contentVersion"": ""1.0.0.0"", ""parameters"": { ""location"": { ""value"": ""eastus"" } } }"; var parametersFilePath = FileHelper.SaveResultFile(TestContext, "input.parameters.json", parametersFileContents, testOutputPath); var bicepUpdatedDeploymentParameter1 = new BicepUpdatedDeploymentParameter("name", "test", false, ParameterType.String); var bicepUpdatedDeploymentParameter2 = new BicepUpdatedDeploymentParameter("isSku", "true", false, ParameterType.Bool); var bicepUpdatedDeploymentParameter3 = new BicepUpdatedDeploymentParameter("count", "3", false, ParameterType.Int); var bicepUpdatedDeploymentParameters = new List <BicepUpdatedDeploymentParameter> { bicepUpdatedDeploymentParameter1, bicepUpdatedDeploymentParameter2, bicepUpdatedDeploymentParameter3 }; var result = DeploymentParametersHelper.GetUpdatedParametersFileContents( bicepFilePath, "input.parameters.json", parametersFilePath, ParametersFileUpdateOption.Update, bicepUpdatedDeploymentParameters); var expectedParametersFileContentsWrittenToDisk = @"{ ""$schema"": ""https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#"", ""contentVersion"": ""1.0.0.0"", ""parameters"": { ""name"": { ""value"": ""test"" }, ""isSku"": { ""value"": true }, ""count"": { ""value"": 3 }, ""location"": { ""value"": ""eastus"" } } }"; var expectedParametersFileUsedInDeployment = @"{ ""name"": { ""value"": ""test"" }, ""isSku"": { ""value"": true }, ""count"": { ""value"": 3 }, ""location"": { ""value"": ""eastus"" } }"; result.Should().BeEquivalentToIgnoringNewlines(expectedParametersFileUsedInDeployment); File.ReadAllText(parametersFilePath).Should().BeEquivalentToIgnoringNewlines(expectedParametersFileContentsWrittenToDisk); }