Template
77 lines
3.0 KiB
C#
77 lines
3.0 KiB
C#
using Moq;
|
|
using NUnit.Framework;
|
|
using Strata.ContinuousImprovement.Api.SnowflakeControllers;
|
|
using Strata.DecisionSupport.Biz.Mapperly;
|
|
using Strata.DecisionSupport.Biz.Services;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics.CodeAnalysis;
|
|
using System.Linq;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using VerifyNUnit;
|
|
using VerifyTests;
|
|
using Encounters = Strata.DecisionSupport.Biz.Encounters;
|
|
using Parameters = Strata.DecisionSupport.Biz.Parameters;
|
|
|
|
namespace Strata.ContinuousImprovement.Api.Test.Unit.SnowflakeControllers
|
|
{
|
|
[ExcludeFromCodeCoverage]
|
|
[TestFixture, Category("Unit"), Category("Controller")]
|
|
public class UtilizationVariationControllerTest
|
|
{
|
|
public VerifySettings verifySettings;
|
|
|
|
private UtilizationVariationController controller;
|
|
|
|
[SetUp]
|
|
public void SetUp()
|
|
{
|
|
var charges = new List<Encounters.ChargeInfo> {
|
|
new Encounters.ChargeInfo()
|
|
};
|
|
var jazzCharges = charges.Select(c => JazzEncounterInfoMapper.MapToJazz(c));
|
|
var service = Mock.Of<UtilizationVariationService>();
|
|
|
|
controller = new UtilizationVariationController(service);
|
|
verifySettings = TestExtensions.TestSettings();
|
|
}
|
|
|
|
[Test]
|
|
public async Task TestController()
|
|
{
|
|
var controllerExists = controller != null;
|
|
await Verifier.Verify(controllerExists, verifySettings)
|
|
.UseFileName(TestContext.CurrentContext.TestName());
|
|
}
|
|
|
|
[TestCaseSource(nameof(GetChargeInfoTestCases))]
|
|
public async Task TestGetChargeInfo(Guid opportunityGuid, IEnumerable<int> chargeCodeIds)
|
|
{
|
|
var queryInfo = new Parameters.ChargeQueryInfo(Guid.NewGuid(), 10, chargeCodeIds.ToList(), opportunityGuid);
|
|
var response = await controller.GetChargeInfoAsync(queryInfo, CancellationToken.None);
|
|
await Verifier.Verify(response, verifySettings)
|
|
.UseFileName(TestContext.CurrentContext.TestName());
|
|
}
|
|
|
|
[TestCaseSource(nameof(GetChargeInfoTestCases))]
|
|
public async Task TestGetAllChargeInfo(Guid opportunityGuid, IEnumerable<int> chargeCodeIds)
|
|
{
|
|
var queryInfo = new Parameters.AllChargeQueryInfo(opportunityGuid, chargeCodeIds.ToList());
|
|
var response = await controller.GetAllChargeInfoAsync(queryInfo, CancellationToken.None);
|
|
await Verifier.Verify(response, verifySettings)
|
|
.UseFileName(TestContext.CurrentContext.TestName());
|
|
}
|
|
|
|
public static IEnumerable<TestCaseData> GetChargeInfoTestCases()
|
|
{
|
|
yield return new TestCaseData(Guid.Empty, Enumerable.Empty<int>())
|
|
.SetName("{m} Empty OpportunityGuid");
|
|
yield return new TestCaseData(Guid.Empty, new[] { 1 })
|
|
.SetName("{m} with ChargeCodes");
|
|
yield return new TestCaseData(Guid.NewGuid(), new[] { 1 })
|
|
.SetName("{m} with Opportunity and ChargeCodes");
|
|
}
|
|
}
|
|
}
|