Template
118 lines
4.4 KiB
C#
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""}]}"
|
|
};
|
|
}
|
|
}
|
|
}
|