using AsbCloudApp.Repositories;
using AsbCloudApp.Requests;
using AsbCloudApp.Services;
using AsbCloudInfrastructure.Services.ProcessMapPlan.Export;
using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser;
using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan;
using AsbCloudWebApi.IntegrationTests;
using Microsoft.EntityFrameworkCore;
using Xunit;
using AsbCloudDb.Model.ProcessMapPlan.Operations;
using AsbCloudApp.Data.ProcessMaps.Operations;

namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations;

/// <summary>
/// РТК план выставление
/// </summary>
public class ProcessMapPlanTFOrientationControllerTest :
      ProcessMapPlanBaseControllerTest<ProcessMapPlanTFOrientation, ProcessMapPlanTFOrientationDto>
{
    public ProcessMapPlanTFOrientationControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanTFOrientation")
    {
    }
    private readonly ProcessMapPlanTFOrientationDto dto = new ProcessMapPlanTFOrientationDto()
    {
        IdWell = 1,
        DepthStart = 1,
        DepthEnd = 2,
        Id = 0,
        IdWellSectionType = 1,
        DifferentialPressure = 1,
        Spring = 1,
        FlowRateDown = 1,
        FlowRateUp = 1,
        Interval = 1,
        Note = "1",
        PressureMax = 1,
        RepetitionsCount = 1,
        RopDown = 1,
        RopUp = 1,
        SlackingOff = 1,
        StopPointOffBottom = 1,
        TFSetpoint = 1,
        Tight = 1,
        TorqueMax = 1,
    };

    private readonly ProcessMapPlanTFOrientation entity = new ProcessMapPlanTFOrientation()
    {
        IdWell = 1,
        DepthEnd = 10,
        DepthStart = 2,
        Id = 0,
        IdWellSectionType = 1,
        IdAuthor = 1,
        IdEditor = 1,
        Creation = DateTimeOffset.UtcNow,
        DifferentialPressure = 1,
        Spring = 1,
        FlowRateDown = 1,
        FlowRateUp = 1,
        Interval = 1,
        Note = "1",
        PressureMax = 1,
        RepetitionsCount = 1,
        RopDown = 1,
        RopUp = 1,
        SlackingOff = 1,
        StopPointOffBottom = 1,
        TFSetpoint = 1,
        Tight = 1,
        TorqueMax = 1,
    };

    [Fact]
    public async Task Get_actual_returns_success()
    {
        await Get(entity, dto);
    }

    protected override ProcessMapPlanTFOrientation GetByNote(DbSet<ProcessMapPlanTFOrientation> dbSet, ProcessMapPlanTFOrientationDto dto)
    {
        throw new NotImplementedException();
    }

    protected override ProcessMapPlanTFOrientationDto GetByNote(IEnumerable<ProcessMapPlanTFOrientationDto> dtos, ProcessMapPlanTFOrientationDto dto)
    {
        throw new NotImplementedException();
    }

    protected override ProcessMapPlanTFOrientation? GetByWellId()
    {
        throw new NotImplementedException();
    }
}