Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,19 @@ public static void SetAzureSubscriptionId(string subscriptionId)
/// </summary>
public static void ClearAzureSubscriptionId()
=> Environment.SetEnvironmentVariable(EnvironmentHelpers.AzureSubscriptionIdEnvironmentVariable, null);

/// <summary>
/// Skips the test if a default subscription is configured via Azure CLI profile or AZURE_SUBSCRIPTION_ID.
/// This is useful for tests that validate missing required --subscription parameters,
/// which have fallback to default subscription sources in SubscriptionCommand.
/// </summary>
public static void SkipIfDefaultSubscriptionConfigured()
{
if (!string.IsNullOrEmpty(CommandHelper.GetDefaultSubscription()))
{
Xunit.Assert.Skip(
"An Azure CLI default subscription is configured; cannot validate missing --subscription. " +
"Run 'az logout' or 'az account clear' to clear the profile, then restart the test runner.");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
using Azure.Mcp.Tools.ResourceHealth.Services;
using Microsoft.Mcp.Core.Options;
using Microsoft.Mcp.Tests.Client;
using Microsoft.Mcp.Tests.Helpers;
using NSubstitute;
using NSubstitute.ExceptionExtensions;
using Xunit;
Expand Down Expand Up @@ -172,6 +173,11 @@ public async Task ExecuteAsync_HandlesException_WhenListingResources()
[InlineData("--subscription")]
public async Task ExecuteAsync_ReturnsError_WhenRequiredParameterIsMissing(string missingParameter)
{
// The subscription option falls back to the Azure CLI profile or AZURE_SUBSCRIPTION_ID env var.
// Skip if a CLI profile default is present so the test only runs when
// the missing-subscription path is actually exercised.
TestEnvironment.SkipIfDefaultSubscriptionConfigured();

var argsList = new List<string>();
if (missingParameter != "--subscription")
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
using Azure.Mcp.Tools.ResourceHealth.Services;
using Microsoft.Mcp.Core.Options;
using Microsoft.Mcp.Tests.Client;
using Microsoft.Mcp.Tests.Helpers;
using NSubstitute;
using NSubstitute.ExceptionExtensions;
using Xunit;
Expand All @@ -25,6 +26,14 @@ public class ServiceHealthEventsListCommandTests : CommandUnitTestsBase<ServiceH
[InlineData("--subscription sub123 --filter startTime ge 2023-01-01", true)]
public async Task ExecuteAsync_ValidatesInput(string args, bool shouldSucceed)
{
// The subscription option falls back to the Azure CLI profile or AZURE_SUBSCRIPTION_ID env var.
// For the empty-args (missing subscription) cases, skip when a CLI
// profile default is present so we only assert when validation actually fails.
if (!shouldSucceed && string.IsNullOrWhiteSpace(args))
{
TestEnvironment.SkipIfDefaultSubscriptionConfigured();
}

// Arrange
if (shouldSucceed)
{
Expand Down