Files
Thom Lamb 8b0368e810
SonarQube Analysis / sonarqube (push) Failing after 3m21s
test: fix SqlBreakdown tests project
2026-05-15 13:39:14 -05:00

41 lines
1.6 KiB
C#

using Strata.SqlTools.SqlBreakdown.Classes;
using Strata.SqlTools.SqlBreakdown.Expressions;
using Strata.SqlTools.SqlBreakdown.Expressions.Functions.Aggregate;
namespace Strata.SqlTools.SqlBreakdown.Tests.ExpressionTests;
[TestFixture]
public class SelectClauseColumnTests : ExpressionTestsBase
{
private static IEnumerable<TestCaseData> SelectClauseColumnTestCases()
{
yield return new TestCaseData("TableColumn", "foo_dept_name", "PES.DEPARTMENT_NAME AS foo_dept_name")
.SetName("TableColumn_{m}");
yield return new TestCaseData("SumFunction", "sum_net_rev", "SUM(PES.NET_REVENUE) AS sum_net_rev")
.SetName("WithSumFunction_{m}");
yield return new TestCaseData("Parameter", "my_var_col", ":FOOBAR AS my_var_col")
.SetName("WithParameter_{m}");
}
[TestCaseSource(nameof(SelectClauseColumnTestCases))]
public void SelectClauseColumn_GeneratesCorrectSql(string columnType, string alias, string expectedSql)
{
// Arrange
SelectClauseColumn column = columnType switch
{
"TableColumn" => SelectClauseColumn.TableColumn(_nameColumnExp, alias),
"SumFunction" => new SelectClauseColumn(new SumFunction(_revenueColumnExp), alias),
"Parameter" => new SelectClauseColumn(new ParameterExpression("FOOBAR"), alias),
_ => throw new ArgumentException($"Unknown column type: {columnType}")
};
// Act
var result = column.Accept(_sqlVisitor);
// Assert
Assert.That(result, Is.EqualTo(expectedSql));
}
}