This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
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));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user