Template
70 lines
2.9 KiB
C#
70 lines
2.9 KiB
C#
using Strata.ApiCommunication.Http;
|
|
using Strata.ApiLib.Standard.Models;
|
|
using Strata.ContinuousImprovement.Biz.Generics;
|
|
using System.Diagnostics.CodeAnalysis;
|
|
using System.Net.Http.Json;
|
|
|
|
namespace Strata.ContinuousImprovement.Api.Test.Integration.Tests
|
|
{
|
|
[ExcludeFromCodeCoverage]
|
|
[TestFixture(Category = "Integration")]
|
|
|
|
public class TestAllOpportunitiesController : ApiTestBase
|
|
{
|
|
protected const string AllOpportunitiesEndpoint = "api/v1/all-opportunities";
|
|
|
|
[Test]
|
|
public async Task TestGetAllOportunitiesFromApi()
|
|
{
|
|
// arrange
|
|
var configurations = await GetConfigurations();
|
|
var configuration = configurations.First();
|
|
var loadOptions = new Controllers.AllOpportunityLoadOptions
|
|
{
|
|
Filters = new Biz.All.Opportunities.Filters.AllFilters
|
|
{
|
|
ConfigurationGuid = configuration.ConfigurationGuid,
|
|
OpportunityTypes =
|
|
[
|
|
$"{(int)OpportunityTypes.Encounter}",
|
|
$"{(int) OpportunityTypes.QualityVariation}",
|
|
$"{(int) OpportunityTypes.Variation}",
|
|
],
|
|
ViewVisible = true
|
|
},
|
|
PagingOptions = new Biz.Pagination.PagingOptions
|
|
{
|
|
First = 0,
|
|
Rows = 100,
|
|
SortOrder = Biz.Pagination.SortOrder.Desc,
|
|
SortField = "IdentifiedSavings"
|
|
}
|
|
};
|
|
var request = new HttpRequestMessage(HttpMethod.Post, AllOpportunitiesEndpoint);
|
|
|
|
// act
|
|
await request.SetContentAsJsonAsync(loadOptions);
|
|
var response = await HttpClient.SendAsync(request, CancellationToken.None);
|
|
response.EnsureSuccessStatusCode();
|
|
|
|
// assert
|
|
Assert.Multiple(() =>
|
|
{
|
|
var opportunitiesPage = new PagedApiResponse<Info.AllOpportunityInfo>();
|
|
Assert.DoesNotThrowAsync(async () =>
|
|
opportunitiesPage = await response.Content.ReadFromJsonAsync<PagedApiResponse<Info.AllOpportunityInfo>>());
|
|
response.AssertIsValid();
|
|
Assert.That(opportunitiesPage.Data, Is.Not.Empty);
|
|
Assert.That(opportunitiesPage.Data.Count, Is.LessThanOrEqualTo(loadOptions.PagingOptions.Rows));
|
|
Assert.That(opportunitiesPage.Data.Any(opp =>
|
|
opp.OpportunityType == (int)OpportunityTypes.Encounter
|
|
|| opp.OpportunityType == (int)OpportunityTypes.QualityVariation
|
|
|| opp.OpportunityType == (int)OpportunityTypes.Variation), Is.True);
|
|
Assert.That(opportunitiesPage.PagingInfo.ResultsPerPage, Is.LessThanOrEqualTo(loadOptions.PagingOptions.Rows));
|
|
});
|
|
}
|
|
|
|
}
|
|
|
|
}
|