chore: initial git load of code space
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
using Strata.SqlTools.SqlBreakdown.Classes;
|
||||
using Strata.SqlTools.SqlBreakdown.Expressions;
|
||||
using Strata.SqlTools.SqlBreakdown.Expressions.Conditional;
|
||||
using Strata.SqlTools.SqlServer.ExpressionFactory.Query;
|
||||
using Strata.SqlTools.SqlBreakdown.Tests.RegisteredTables;
|
||||
using Strata.SqlTools.Visitors.Snowflake;
|
||||
using ExpressionFactoryBase = Strata.SqlTools.SqlServer.ExpressionFactory.ExpressionFactory;
|
||||
|
||||
namespace Strata.SqlTools.SqlBreakdown.Tests.ExpressionTests;
|
||||
|
||||
/// <summary>
|
||||
/// Test implementation of ExpressionFactory for unit testing.
|
||||
/// Uses July 1 as the fiscal year start date.
|
||||
/// </summary>
|
||||
internal class TestExpressionFactory : ExpressionFactoryBase
|
||||
{
|
||||
protected override DateTime GetCurrentFiscalYearStart()
|
||||
{
|
||||
return new DateTime(DateTime.UtcNow.Year, 7, 1, 0, 0, 0, DateTimeKind.Utc);
|
||||
}
|
||||
|
||||
protected override RegisteredTableColumnExpression GetColumnExpression(int dataColumnId)
|
||||
{
|
||||
return RegisteredTableColumns.GetColumn(dataColumnId);
|
||||
}
|
||||
|
||||
// Public wrappers for testing protected methods
|
||||
public new BooleanExpression CreateBooleanExpression(Filter filter) => base.CreateBooleanExpression(filter);
|
||||
public static new Expression GetFiscalYearMonthExpression(Expression dateColumnExpr, int fiscalYearStartMonth, int fiscalYearStartDay)
|
||||
=> ExpressionFactoryBase.GetFiscalYearMonthExpression(dateColumnExpr, fiscalYearStartMonth, fiscalYearStartDay);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Base class for expression tests with common setup.
|
||||
/// </summary>
|
||||
public abstract class ExpressionTestsBase
|
||||
{
|
||||
protected RegisteredTableSource _table = null!;
|
||||
protected RegisteredTableColumnExpression _nameColumnExp = null!;
|
||||
protected RegisteredTableColumnExpression _revenueColumnExp = null!;
|
||||
protected RegisteredTableColumnExpression _costColumnExp = null!;
|
||||
protected RegisteredTableColumnExpression _dischargeDateColumnExp = null!;
|
||||
protected CommandVisitor _sqlVisitor = null!;
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
_table = new RegisteredTableSource(101, "CLIENT_DSS", "FACT_PATIENT_ENCOUNTER_SUMMARY", "PES");
|
||||
_nameColumnExp = new RegisteredTableColumnExpression(1, "DEPARTMENT_NAME", _table);
|
||||
_revenueColumnExp = new RegisteredTableColumnExpression(2, "NET_REVENUE", _table);
|
||||
_costColumnExp = new RegisteredTableColumnExpression(3, "COST", _table);
|
||||
_dischargeDateColumnExp = new RegisteredTableColumnExpression(4, "DISCHARGE_DATE", _table);
|
||||
_sqlVisitor = new CommandVisitor();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Executes an expression test case with arrange, act, and assert phases.
|
||||
/// </summary>
|
||||
/// <param name="testCase">The test case to execute.</param>
|
||||
protected void ExecuteExpressionTest(ExpressionTestCase testCase)
|
||||
{
|
||||
// Arrange
|
||||
var visitor = new CommandVisitor();
|
||||
var arrange = testCase.Arrange;
|
||||
|
||||
// Act
|
||||
var result = testCase.Act(arrange, visitor);
|
||||
|
||||
// Assert
|
||||
Assert.That(testCase.Assertions(result));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user