Files
microsoft--semantic-kernel/dotnet/test/VectorData/SqlServer.ConformanceTests/Support/AzureSqlRequiredAttribute.cs
T
wehub-resource-sync b957a53def
CodeQL / Analyze (csharp) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:21:23 +08:00

42 lines
1.5 KiB
C#

// Copyright (c) Microsoft. All rights reserved.
using Microsoft.Data.SqlClient;
using VectorData.ConformanceTests.Xunit;
namespace SqlServer.ConformanceTests.Support;
/// <summary>
/// Skips the test(s) when the database is not Azure SQL Database or SQL database in Microsoft Fabric.
/// This is used for tests that require Azure SQL features not available in on-prem SQL Server (e.g. DiskAnn vector indexes).
/// </summary>
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class | AttributeTargets.Assembly)]
public sealed class AzureSqlRequiredAttribute : Attribute, ITestCondition
{
private static bool? s_isAzureSql;
public async ValueTask<bool> IsMetAsync()
{
if (s_isAzureSql is not null)
{
return s_isAzureSql.Value;
}
var connectionString = SqlServerTestStore.Instance.ConnectionString;
using var connection = new SqlConnection(connectionString);
await connection.OpenAsync();
using var command = connection.CreateCommand();
command.CommandText = "SELECT SERVERPROPERTY('EngineEdition')";
var result = await command.ExecuteScalarAsync();
var engineEdition = Convert.ToInt32(result);
// 5 = Azure SQL Database, 11 = SQL database in Microsoft Fabric
s_isAzureSql = engineEdition is 5 or 11;
return s_isAzureSql.Value;
}
public string SkipReason
=> "This test requires Azure SQL Database or SQL database in Microsoft Fabric.";
}