mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-14 09:59:48 -05:00
* Make nullable warnings a per file opt-in * Remove unneeded compiler directives * Remove compiler directive for User Data
141 lines
5.5 KiB
C#
141 lines
5.5 KiB
C#
//
|
|
// Copyright (c) Microsoft. All rights reserved.
|
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
//
|
|
|
|
#nullable disable
|
|
|
|
using Microsoft.SqlTools.ServiceLayer.Connection.Contracts;
|
|
using Microsoft.SqlTools.ServiceLayer.ObjectExplorer;
|
|
using NUnit.Framework;
|
|
|
|
namespace Microsoft.SqlTools.ServiceLayer.UnitTests.ObjectExplorer
|
|
{
|
|
public class ServerVersionHelperTests
|
|
{
|
|
[Test]
|
|
public void GetValidForFlagShouldReturnAllGivenUnKnownVersion()
|
|
{
|
|
ValidForFlag validforFlag = ServerVersionHelper.GetValidForFlag(SqlServerType.Unknown);
|
|
ValidForFlag expected = ValidForFlag.All;
|
|
|
|
Assert.AreEqual(validforFlag, expected);
|
|
}
|
|
|
|
[TestCase(SqlServerType.AzureV12, ValidForFlag.AzureV12)]
|
|
[TestCase(SqlServerType.Sql2005, ValidForFlag.Sql2005)]
|
|
[TestCase(SqlServerType.Sql2008, ValidForFlag.Sql2008)]
|
|
[TestCase(SqlServerType.Sql2012, ValidForFlag.Sql2012)]
|
|
[TestCase(SqlServerType.Sql2014, ValidForFlag.Sql2014)]
|
|
[TestCase(SqlServerType.Sql2016, ValidForFlag.Sql2016)]
|
|
[TestCase(SqlServerType.Sql2017, ValidForFlag.Sql2017)]
|
|
[TestCase(SqlServerType.Sql2019, ValidForFlag.Sql2019)]
|
|
[TestCase(SqlServerType.Sql2022, ValidForFlag.Sql2022)]
|
|
[TestCase(SqlServerType.SqlOnDemand, ValidForFlag.SqlOnDemand)]
|
|
public void GetValidForFlagShouldReturnTheFlagCorrectlyGivenValidVersion(SqlServerType serverType, ValidForFlag validForFlag)
|
|
{
|
|
ValidForFlag validforFlag = ServerVersionHelper.GetValidForFlag(serverType);
|
|
ValidForFlag expected = validForFlag;
|
|
|
|
Assert.That(validforFlag, Is.EqualTo(expected));
|
|
}
|
|
|
|
[Test]
|
|
public void GetValidForFlagShouldReturnTheFlagIncludingSqlDwGivenSqlDwdatabase()
|
|
{
|
|
ValidForFlag validforFlag = ServerVersionHelper.GetValidForFlag(SqlServerType.AzureV12, true);
|
|
ValidForFlag expected = ValidForFlag.SqlDw;
|
|
|
|
Assert.AreEqual(validforFlag, expected);
|
|
}
|
|
|
|
[TestCase("9.1.2.3", SqlServerType.Sql2005)]
|
|
[TestCase("10.1.2.3", SqlServerType.Sql2008)]
|
|
[TestCase("11.1.2.3", SqlServerType.Sql2012)]
|
|
[TestCase("12.1.2.3", SqlServerType.Sql2014)]
|
|
[TestCase("13.1.2.3", SqlServerType.Sql2016)]
|
|
[TestCase("14.1.2.3", SqlServerType.Sql2017)]
|
|
[TestCase("15.1.2.3", SqlServerType.Sql2019)]
|
|
[TestCase("16.1.2.3", SqlServerType.Sql2022)]
|
|
public void CalculateServerTypeShouldReturnExpectedValue(string serverVersion, SqlServerType expectedServerType)
|
|
{
|
|
ServerInfo serverInfo = new ServerInfo
|
|
{
|
|
ServerVersion = serverVersion
|
|
};
|
|
SqlServerType actual = ServerVersionHelper.CalculateServerType(serverInfo);
|
|
Assert.That(expectedServerType, Is.EqualTo(actual));
|
|
}
|
|
|
|
[Test]
|
|
public void IsValidForShouldReturnTrueGivenSqlDwAndAll()
|
|
{
|
|
ValidForFlag serverValidFor = ValidForFlag.SqlDw;
|
|
ValidForFlag validFor = ValidForFlag.All;
|
|
bool expected = true;
|
|
VerifyIsValidFor(serverValidFor, validFor, expected);
|
|
}
|
|
|
|
[Test]
|
|
public void IsValidForShouldReturnTrueGivenSqlDwAndNone()
|
|
{
|
|
ValidForFlag serverValidFor = ValidForFlag.SqlDw;
|
|
ValidForFlag validFor = ValidForFlag.None;
|
|
bool expected = true;
|
|
VerifyIsValidFor(serverValidFor, validFor, expected);
|
|
}
|
|
|
|
[Test]
|
|
public void IsValidForShouldReturnTrueGivenSqlDwAndSqlDw()
|
|
{
|
|
ValidForFlag serverValidFor = ValidForFlag.SqlDw;
|
|
ValidForFlag validFor = ValidForFlag.SqlDw;
|
|
bool expected = true;
|
|
VerifyIsValidFor(serverValidFor, validFor, expected);
|
|
}
|
|
|
|
[Test]
|
|
public void IsValidForShouldReturnTrueGivenSqlDwAndNotSqlDw()
|
|
{
|
|
ValidForFlag serverValidFor = ValidForFlag.SqlDw;
|
|
ValidForFlag validFor = ValidForFlag.NotSqlDw;
|
|
bool expected = false;
|
|
VerifyIsValidFor(serverValidFor, validFor, expected);
|
|
}
|
|
|
|
[Test]
|
|
public void IsValidForShouldReturnTrueGivenSqlDwAndAllOnPrem()
|
|
{
|
|
ValidForFlag serverValidFor = ValidForFlag.SqlDw;
|
|
ValidForFlag validFor = ValidForFlag.AllOnPrem;
|
|
bool expected = false;
|
|
VerifyIsValidFor(serverValidFor, validFor, expected);
|
|
}
|
|
|
|
[Test]
|
|
public void CalculateServerTypeShouldReturnSqlOnDemandGivenEngineEdition()
|
|
{
|
|
int engineEdition = 11;
|
|
SqlServerType expected = SqlServerType.SqlOnDemand;
|
|
VerifyCalculateServerTypeForEngineEdition(engineEdition, expected);
|
|
}
|
|
|
|
private void VerifyIsValidFor(ValidForFlag serverValidFor, ValidForFlag validFor, bool expected)
|
|
{
|
|
bool actual = ServerVersionHelper.IsValidFor(serverValidFor, validFor);
|
|
Assert.AreEqual(expected, actual);
|
|
}
|
|
|
|
private void VerifyCalculateServerTypeForEngineEdition(int engineEdition, SqlServerType expected)
|
|
{
|
|
ServerInfo serverInfo = new ServerInfo
|
|
{
|
|
EngineEditionId = engineEdition
|
|
};
|
|
|
|
SqlServerType actual = ServerVersionHelper.CalculateServerType(serverInfo);
|
|
Assert.True(actual == expected, $"Verify server type based on Engine Edition. Actual value: {actual}, Expected value: {expected}");
|
|
}
|
|
}
|
|
}
|