using SQLInsight.Collectors.Performance;
namespace SQLInsight.Collectors.Tests;
public class ShowplanAnalyzerTests
{
private const string Plan = """
""";
[Fact]
public void Finds_the_warnings_that_matter()
{
var warnings = ShowplanAnalyzer.Analyze(Plan);
Assert.Equal(["CONVERT_IMPLICIT(nvarchar(20),[x].[Code],0)=[@code]"], warnings.SeekPreventingConversions);
Assert.True(warnings.NoJoinPredicate);
Assert.Equal(["[Sales].[dbo].[fn_Price]"], warnings.ScalarUdfs);
Assert.Equal(["[Orders].Status"], warnings.ColumnsWithNoStatistics);
Assert.False(warnings.NotAnalyzed);
}
[Theory]
[InlineData(null)]
[InlineData("")]
[InlineData("]>&e;").NotAnalyzed);
}
}