DD.WellWorkover.Cloud/AsbCloudWebApi.IntegrationTests/Controllers/SetpointsControllerTest.cs

53 lines
1.4 KiB
C#

using System.Net;
using AsbCloudDb.Model;
using AsbCloudWebApi.IntegrationTests.Clients;
using Microsoft.EntityFrameworkCore;
using Xunit;
namespace AsbCloudWebApi.IntegrationTests.Controllers;
public class SetpointsControllerTest : BaseIntegrationTest
{
private readonly ISetpointsClient client;
public SetpointsControllerTest(WebAppFactoryFixture factory)
: base(factory)
{
client = factory.GetAuthorizedHttpClient<ISetpointsClient>(string.Empty);
}
[Fact]
public async Task GetByTelemetryUidAsync_returns_success()
{
//arrange
var well = await dbContext.Wells
.Include(w => w.Telemetry)
.FirstAsync();
var entity = new SetpointsRequest
{
IdWell = well.Id,
UploadDate = DateTimeOffset.UtcNow,
ObsolescenceSec = 15,
IdState = 1,
IdAuthor = 1
};
var entry = dbContext.SetpointsRequests.Add(entity);
await dbContext.SaveChangesAsync();
entry.State = EntityState.Detached;
//act
var response = await client.GetByTelemetryUidAsync(well.Telemetry!.RemoteUid);
//assert
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
Assert.NotNull(response.Content);
Assert.Single(response.Content);
var setpoints = await dbContext.SetpointsRequests.ToArrayAsync();
foreach (var setpoint in setpoints)
Assert.Equal(2, setpoint.IdState);
}
}