Files
continuousimprovement/tests/Strata.ContinuousImprovement.Biz.Test.Integration/JazzIntegrationTests/TestCCOpportunityDetailService.cs
T

118 lines
4.4 KiB
C#

using FluentAssertions;
using Microsoft.Extensions.Logging;
using Moq;
using Strata.ContinuousImprovement.Biz.ChargeCode.Opportunities;
using Strata.ContinuousImprovement.Biz.Shared;
using Strata.CoreLib.Claims;
using Strata.FeatureFlags.Client;
using Strata.Schema.Client;
using System.Diagnostics.CodeAnalysis;
using System.Security.Claims;
namespace Strata.ContinuousImprovement.Biz.Test.Integration.JazzIntegrationTests
{
[ExcludeFromCodeCoverage]
[TestFixture, Category("Integration"), Category("CCI")]
internal class TestCCOpportunityDetailService : IntegrationTestBase
{
protected ICCOpportunityDetailService _ccOpportunityDetailService;
[OneTimeSetUp]
public void SetupChargeCodeDetailService()
{
var claims = new List<Claim>
{
new Claim("database_guid", GmAutomationDatabase.ToString())
};
var principal = new ClaimsPrincipal(new ClaimsIdentity(claims, "TestAuth"));
var claimsPrincipalMock = Mock.Of<IClaimsPrincipalAccessor>();
Mock.Get(claimsPrincipalMock)
.Setup(x => x.GetCurrentClaimsPrincipal())
.Returns(principal);
var featureFlagServiceMock = Mock.Of<IFeatureFlagServiceClient>();
Mock.Get(featureFlagServiceMock)
.Setup(x => x.IsEnabledAsync("is-decision-support-queries-enabled", It.IsAny<Guid>(), It.IsAny<bool>(), It.IsAny<bool>(), It.IsAny<CancellationToken>()))
.ReturnsAsync(true);
_ccOpportunityDetailService = new CCOpportunityDetailService(
JazzConnBuilderFactory,
Mock.Of<ISchemaServiceClient>(),
SnowflakeDatabaseContext,
featureFlagServiceMock,
Mock.Of<ILogger<CCOpportunityDetailService>>(),
claimsPrincipalMock);
}
[TestCaseSource(nameof(OpportunityCases))]
public async Task OpportunityDetailQueryTest_Returns_Data(bool isBaseline, CCOpportunityDataModel opportunity)
{
// arrange
var configuration = CreateConfiguration();
// act
var results = await _ccOpportunityDetailService.GetCCOpportunityDetailQueryResult(
opportunity,
configuration,
CancellationToken.None,
isBaseline: true);
// assert
results.Should().NotBeNullOrEmpty();
}
[TestCaseSource(nameof(OpportunityCases))]
public async Task OpportunityDetailLevelCasesQueryTest_Returns_Data(bool isBaseline, CCOpportunityDataModel opportunity)
{
// arrange
var configuration = CreateConfiguration();
// act
var results = await _ccOpportunityDetailService.CCOpportunityLevelCasesQuery(
opportunity,
configuration,
CancellationToken.None,
isBaseline: true);
// assert
results.Should().NotBeNullOrEmpty();
}
private Configuration.Configuration CreateConfiguration()
{
return new Configuration.Configuration
{
OrgDefinedEndDate = new DateTime(2024, 1, 1)
};
}
private static IEnumerable<TestCaseData> OpportunityCases()
{
yield return new TestCaseData(true, GetSystemLevelData()).SetName("System");
}
private static CCOpportunityDataModel GetSystemLevelData()
{
return new CCOpportunityDataModel
{
OpportunityLevel = OpportunityLevel.Organization.ToString(),
ChargeCodeJson =
@"{""HierarchyPaths"":[""CC|CCRU|Blood""],""Members"":[
{""MemberGuid"":""4041e269-34c4-4a1d-bebf-c6e0a0799539"",""Name"":""10002765 - HB RBC LEUKOREDUCED EA UNIT"",""Id"":""3540""}]}",
ClinicalIndicatorJson =
@"{""HierarchyPaths"":[""CLINICALINDICATOR|CLINICALINDI|188""],""Members"":[{""MemberGuid"":""d1e38321-5e37-4dad-9a54-ca8599763e7a"",""Name"":""All Readmissions"",""Id"":""188""}]}",
OpportunityLevelJson =
@"{""HierarchyPaths"":[""SYS|SYSTEM""],
""Members"":[{""MemberGuid"":""00000000-0000-0000-0000-000000000000"",
""Id"":""1"",
""Name"":""System""}]}"
};
}
}
}