Files

62 lines
2.5 KiB
C#

using FluentAssertions;
using Microsoft.Extensions.Logging;
using Moq;
using Strata.ContinuousImprovement.Biz.Encounter;
using Strata.ContinuousImprovement.Biz.Encounter.Opportunities;
using Strata.Schema.Client;
using Strata.Schema.Client.Dtos;
using Strata.Schema.Client.Dtos.Info;
using System.Diagnostics.CodeAnalysis;
namespace Strata.ContinuousImprovement.Biz.Test.Integration.JazzIntegrationTests
{
[ExcludeFromCodeCoverage]
[TestFixture, Category("Integration"), Category("CCI")]
internal class TestGetENOpportunityDetailQuery : IntegrationTestBase
{
[Test]
public async Task TestGetENOpportunityDetailQuery_Returns_Data()
{
// arrange
var config = CreateConfiguration();
var opportunity = CreateOpportunity();
var schemaService = new Mock<ISchemaServiceClient>().Object;
Mock.Get(schemaService)
.Setup(x => x.GetDimensionMembersFromHierarchyPathsAsync(It.IsAny<Guid>(), It.IsAny<IEnumerable<string>>(), It.IsAny<CancellationToken>()))
.ReturnsAsync(new List<MemberDto> { new() { Id = "188", } });
Mock.Get(schemaService)
.Setup(x => x.GetDimensionByGlobalIdAsync(It.IsAny<string>(), It.IsAny<CancellationToken>()))
.ReturnsAsync(new ScoreDimensionInfoDto { DimensionGuid = new Guid("3465fcd8-9149-4d96-8456-3ecaa3ffdadd") });
var logger = Mock.Of<ILogger<ENOpportunityDetailJob>>();
// act
var results = await JazzDbContext.GetENOpportunityDetailQuery(opportunity, config, schemaService, logger, GmAutomationDatabase);
// assert
results.Should().NotBeNullOrEmpty();
}
private ENOpportunityDataModel CreateOpportunity()
{
return new ENOpportunityDataModel()
{
EncounterOpportunityJSON = @"{
""EncounterGroup"":1,""IsSeasonal"":false, ""CaseTypes"":[],
""PatientPopulations"":[{""Text"":""All Readmissions"",""Id"":""CLINICALINDICATOR|CLINICALINDI|188""}],
""OpportunityLevel"":""Organization"",
""EncounterOpportunityLevel"":0,
""Entities"":[],""ServiceLines"":[],""Specialties"":[],""Providers"":[],""IsBaseline"":true}"
};
}
private Configuration.Configuration CreateConfiguration()
{
return new Configuration.Configuration
{
OrgDefinedEndDate = new DateTime(2024, 1, 1)
};
}
}
}