Skip to main content
Glama

Azure MCP Server

Official
MIT License
1,161
  • Linux
  • Apple
DeploymentPlanTemplateUtilV2Tests.cs4.41 kB
// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. using AzureMcp.Deploy.Services.Util; using Xunit; namespace AzureMcp.Deploy.Services.Util; public sealed class DeploymentPlanTemplateUtilV2Tests { [Theory] [InlineData("TestProject", "ContainerApp", "AZD", "bicep")] [InlineData("", "WebApp", "AzCli", "")] [InlineData("MyApp", "AKS", "AZD", "terraform")] public void GetPlanTemplate_ValidInputs_ReturnsFormattedTemplate( string projectName, string targetAppService, string provisioningTool, string azdIacOptions) { // Act var result = DeploymentPlanTemplateUtil.GetPlanTemplate( projectName, targetAppService, provisioningTool, azdIacOptions); // Assert Assert.NotNull(result); Assert.NotEmpty(result); // Should contain expected sections Assert.Contains("## **Goal**", result); Assert.Contains("## **Project Information**", result); Assert.Contains("## **Azure Resources Architecture**", result); Assert.Contains("## **Recommended Azure Resources**", result); Assert.Contains("## **Execution Step**", result); // Should not contain unprocessed placeholders for main content Assert.DoesNotContain("{{Title}}", result); Assert.DoesNotContain("{{ProvisioningTool}}", result); // Should contain appropriate provisioning tool if (provisioningTool.ToLowerInvariant() == "azd") { Assert.Contains("azd up", result); } else { Assert.Contains("Azure CLI", result); } } [Fact] public void GetPlanTemplate_EmptyProjectName_UsesDefaultTitle() { // Act var result = DeploymentPlanTemplateUtil.GetPlanTemplate( "", "ContainerApp", "AZD", "bicep"); // Assert Assert.Contains("Azure Deployment Plan", result); Assert.DoesNotContain("Azure Deployment Plan for Project", result); } [Fact] public void GetPlanTemplate_WithProjectName_UsesProjectSpecificTitle() { // Arrange var projectName = "MyTestProject"; // Act var result = DeploymentPlanTemplateUtil.GetPlanTemplate( projectName, "ContainerApp", "AZD", "bicep"); // Assert Assert.Contains($"Azure Deployment Plan for {projectName} Project", result); } [Theory] [InlineData("containerapp", "Azure Container Apps")] [InlineData("webapp", "Azure Web App Service")] [InlineData("functionapp", "Azure Functions")] [InlineData("aks", "Azure Kubernetes Service")] [InlineData("unknown", "Azure Container Apps")] // Default case public void GetPlanTemplate_DifferentTargetServices_MapsToCorrectAzureHost( string targetAppService, string expectedAzureHost) { // Act var result = DeploymentPlanTemplateUtil.GetPlanTemplate( "TestProject", targetAppService, "AZD", "bicep"); // Assert Assert.Contains(expectedAzureHost, result); } [Fact] public void GetPlanTemplate_AzdWithoutIacOptions_DefaultsToBicep() { // Act var result = DeploymentPlanTemplateUtil.GetPlanTemplate( "TestProject", "ContainerApp", "azd", ""); // Assert Assert.Contains("bicep", result); } [Fact] public void GetPlanTemplate_AksTarget_IncludesKubernetesSteps() { // Act var result = DeploymentPlanTemplateUtil.GetPlanTemplate( "TestProject", "AKS", "AZD", "bicep"); // Assert Assert.Contains("kubectl apply", result); Assert.Contains("Kubernetes", result); Assert.Contains("pods are running", result); } [Fact] public void GetPlanTemplate_ContainerAppWithAzCli_IncludesDockerSteps() { // Act var result = DeploymentPlanTemplateUtil.GetPlanTemplate( "TestProject", "ContainerApp", "AzCli", ""); // Assert Assert.Contains("Build and Push Docker Image", result); Assert.Contains("Dockerfile", result); } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Azure/azure-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server