Template
chore: deploy initial code base
This commit is contained in:
+114
@@ -0,0 +1,114 @@
|
||||
using NUnit.Framework;
|
||||
using Strata.ContinuousImprovement.Biz.Shared;
|
||||
using Strata.ContinuousImprovement.Biz.StrategicOpportunities.DistributionProcess.ChargeCode;
|
||||
using Strata.ContinuousImprovement.Biz.StrategicOpportunities.Enums;
|
||||
using Strata.ContinuousImprovement.Biz.Test.Unit.Utilities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using VerifyNUnit;
|
||||
using VerifyTests;
|
||||
|
||||
namespace Strata.ContinuousImprovement.Biz.Test.Unit.StrategicOpportunities.DistributionProcess
|
||||
{
|
||||
public class DistributionProcessChargeCodeSqlBuilderTests : StrategicOpportunityTestsBase
|
||||
{
|
||||
private readonly long _testOpportunityId = 0;
|
||||
private readonly Period<DateOnly> _baselinePeriod;
|
||||
private readonly Period<DateOnly> _goalPeriod;
|
||||
private readonly Period<DateOnly> _trackingPeriod;
|
||||
private readonly double[] _rampUps;
|
||||
|
||||
public DistributionProcessChargeCodeSqlBuilderTests()
|
||||
{
|
||||
_baselinePeriod = new Period<DateOnly>(new DateOnly(2024, 1, 1), new DateOnly(2024, 12, 31));
|
||||
_goalPeriod = new Period<DateOnly>(new DateOnly(2025, 1, 1), new DateOnly(2025, 12, 31));
|
||||
_trackingPeriod = new Period<DateOnly>(new DateOnly(2026, 1, 1), new DateOnly(2026, 12, 31));
|
||||
_rampUps = [0.1, 0.2, 0.3, 0.4];
|
||||
}
|
||||
|
||||
[TestCaseSource(nameof(BuildInsertDistributedSqlTestCases))]
|
||||
public async Task BuildInsertDistributedSqlTest(DistributionMethod methodType, DistributionStage stage)
|
||||
{
|
||||
// Arrange
|
||||
var builder = new DistributionProcessChargeCodeSqlBuilder(
|
||||
_testOpportunityId,
|
||||
_baselinePeriod,
|
||||
_goalPeriod,
|
||||
_trackingPeriod,
|
||||
_rampUps);
|
||||
|
||||
// Act
|
||||
var result = builder.BuildInsertDistributedSql(methodType, stage);
|
||||
|
||||
// Assert
|
||||
await Verifier.Verify(result.Sql, VerifySettings)
|
||||
.UseFileName(TestContext.CurrentContext.TestName());
|
||||
}
|
||||
|
||||
[TestCase(true)]
|
||||
[TestCase(false)]
|
||||
public async Task BuildDistributionSummarySqlTest(bool isInitiative)
|
||||
{
|
||||
// Arrange
|
||||
var builder = new DistributionProcessChargeCodeSqlBuilder(
|
||||
_testOpportunityId,
|
||||
_baselinePeriod,
|
||||
_goalPeriod,
|
||||
_trackingPeriod,
|
||||
_rampUps);
|
||||
|
||||
// Act
|
||||
var result = builder.BuildDistributionSummarySql(isInitiative);
|
||||
|
||||
// Assert
|
||||
await Verifier.Verify(result.Sql, VerifySettings)
|
||||
.UseFileName(TestContext.CurrentContext.TestName());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task BuildUpdateDetailCommittedByRampUpSqlTest()
|
||||
{
|
||||
// Arrange
|
||||
var builder = new DistributionProcessChargeCodeSqlBuilder(
|
||||
_testOpportunityId,
|
||||
_baselinePeriod,
|
||||
_goalPeriod,
|
||||
_trackingPeriod,
|
||||
_rampUps);
|
||||
|
||||
// Act
|
||||
var result = builder.BuildUpdateDetailCommittedByRampUpSql(_rampUps.Reverse().ToArray());
|
||||
|
||||
// Assert
|
||||
await Verifier.Verify(result.Sql, VerifySettings)
|
||||
.UseFileName(TestContext.CurrentContext.TestName());
|
||||
}
|
||||
|
||||
public static IEnumerable<TestCaseData> BuildInsertDistributedSqlTestCases()
|
||||
{
|
||||
var distributionMethods = new[]
|
||||
{
|
||||
DistributionMethod.Average,
|
||||
DistributionMethod.Monthly
|
||||
};
|
||||
var distributionStages = new[]
|
||||
{
|
||||
DistributionStage.FromSourceToOpportunity,
|
||||
DistributionStage.OpportunityChangeGoalPeriod,
|
||||
DistributionStage.FromInitiativeToOpportunity,
|
||||
DistributionStage.FromOpportunityToInitiative,
|
||||
DistributionStage.InitiativeChangeTrackingPeriod
|
||||
};
|
||||
foreach (var method in distributionMethods)
|
||||
{
|
||||
foreach (var stage in distributionStages)
|
||||
{
|
||||
yield return new TestCaseData(method, stage);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+115
@@ -0,0 +1,115 @@
|
||||
using NUnit.Framework;
|
||||
using Strata.ContinuousImprovement.Biz.Shared;
|
||||
using Strata.ContinuousImprovement.Biz.StrategicOpportunities.DistributionProcess.GL;
|
||||
using Strata.ContinuousImprovement.Biz.StrategicOpportunities.Enums;
|
||||
using Strata.ContinuousImprovement.Biz.Test.Unit.Utilities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using VerifyNUnit;
|
||||
|
||||
namespace Strata.ContinuousImprovement.Biz.Test.Unit.StrategicOpportunities.DistributionProcess
|
||||
{
|
||||
[ExcludeFromCodeCoverage]
|
||||
[TestFixture, Category("Unit"), Category("CCI")]
|
||||
public class DistributionProcessGLSqlBuilderTests : StrategicOpportunityTestsBase
|
||||
{
|
||||
private readonly long _testOpportunityId = 0;
|
||||
private readonly Period<DateOnly> _baselinePeriod;
|
||||
private readonly Period<DateOnly> _goalPeriod;
|
||||
private readonly Period<DateOnly> _trackingPeriod;
|
||||
private readonly double[] _rampUps;
|
||||
|
||||
public DistributionProcessGLSqlBuilderTests()
|
||||
{
|
||||
_baselinePeriod = new Period<DateOnly>(new DateOnly(2024, 1, 1), new DateOnly(2024, 12, 31));
|
||||
_goalPeriod = new Period<DateOnly>(new DateOnly(2025, 1, 1), new DateOnly(2025, 12, 31));
|
||||
_trackingPeriod = new Period<DateOnly>(new DateOnly(2026, 1, 1), new DateOnly(2026, 12, 31));
|
||||
_rampUps = [0.1, 0.2, 0.3, 0.4];
|
||||
}
|
||||
|
||||
[TestCaseSource(nameof(BuildInsertDistributedSqlTestCases))]
|
||||
public async Task BuildInsertDistributedSqlTest(DistributionMethod methodType, DistributionStage stage)
|
||||
{
|
||||
// Arrange
|
||||
var builder = new DistributionProcessGLSqlBuilder(
|
||||
_testOpportunityId,
|
||||
_baselinePeriod,
|
||||
_goalPeriod,
|
||||
_trackingPeriod,
|
||||
_rampUps);
|
||||
|
||||
// Act
|
||||
var result = builder.BuildInsertDistributedSql(methodType, stage);
|
||||
|
||||
// Assert
|
||||
await Verifier.Verify(result.Sql, VerifySettings)
|
||||
.UseFileName("GL " + TestContext.CurrentContext.TestName());
|
||||
}
|
||||
|
||||
[TestCase(true)]
|
||||
[TestCase(false)]
|
||||
public async Task BuildDistributionSummarySqlTest(bool isInitiative)
|
||||
{
|
||||
// Arrange
|
||||
var builder = new DistributionProcessGLSqlBuilder(
|
||||
_testOpportunityId,
|
||||
_baselinePeriod,
|
||||
_goalPeriod,
|
||||
_trackingPeriod,
|
||||
_rampUps);
|
||||
|
||||
// Act
|
||||
var result = builder.BuildDistributionSummarySql(isInitiative);
|
||||
|
||||
// Assert
|
||||
await Verifier.Verify(result.Sql, VerifySettings)
|
||||
.UseFileName("GL " + TestContext.CurrentContext.TestName());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task BuildUpdateDetailCommittedByRampUpSqlTest()
|
||||
{
|
||||
// Arrange
|
||||
var builder = new DistributionProcessGLSqlBuilder(
|
||||
_testOpportunityId,
|
||||
_baselinePeriod,
|
||||
_goalPeriod,
|
||||
_trackingPeriod,
|
||||
_rampUps);
|
||||
|
||||
// Act
|
||||
var result = builder.BuildUpdateDetailCommittedByRampUpSql(_rampUps.Reverse().ToArray());
|
||||
|
||||
// Assert
|
||||
await Verifier.Verify(result.Sql, VerifySettings)
|
||||
.UseFileName("GL " + TestContext.CurrentContext.TestName());
|
||||
}
|
||||
|
||||
public static IEnumerable<TestCaseData> BuildInsertDistributedSqlTestCases()
|
||||
{
|
||||
var distributionMethods = new[]
|
||||
{
|
||||
DistributionMethod.Average,
|
||||
DistributionMethod.Monthly
|
||||
};
|
||||
var distributionStages = new[]
|
||||
{
|
||||
DistributionStage.FromSourceToOpportunity,
|
||||
DistributionStage.OpportunityChangeGoalPeriod,
|
||||
DistributionStage.FromInitiativeToOpportunity,
|
||||
DistributionStage.FromOpportunityToInitiative,
|
||||
DistributionStage.InitiativeChangeTrackingPeriod
|
||||
};
|
||||
foreach (var method in distributionMethods)
|
||||
{
|
||||
foreach (var stage in distributionStages)
|
||||
{
|
||||
yield return new TestCaseData(method, stage);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user