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

namespace AsbCloudWebApi.Controllers.ProcessMaps;

/// <summary>
/// РТК план shock test
/// </summary>
public class ProcessMapPlanFunctionsShockTestControllerTest :
      ProcessMapPlanBaseControllerTest<ProcessMapPlanFunctionsShockTest, ProcessMapPlanFunctionsShockTestDto>
{
    public ProcessMapPlanFunctionsShockTestControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsShockTest")
    {
    }
    private readonly ProcessMapPlanFunctionsShockTestDto dto = new ProcessMapPlanFunctionsShockTestDto()
    {
        IdWell = 1,
        DepthStart = 1,
        DepthEnd = 2,
        Id = 0,
        IdWellSectionType = 1,
        AxialVibrations = 1,
        CombinedVibrations = 2,
        IdAutostartOrWarning = true,
        Note = "1",
        RevolutionPerMinuteMin = 1,
        StickSlip = 1,
        WeightOnBitMin = 1,
        Whirl = 1
    };

    private readonly ProcessMapPlanFunctionsShockTest entity = new ProcessMapPlanFunctionsShockTest()
    {
        IdWell = 1,
        DepthEnd = 10,
        DepthStart = 2,
        Id = 0,
        IdWellSectionType = 1,
        IdAuthor = 1,
        IdEditor = 1,
        Creation = DateTimeOffset.UtcNow,
        AxialVibrations = 1,
        CombinedVibrations = 2,
        IdAutostartOrWarning = true,
        Note = "1",
        RevolutionPerMinuteMin = 1,
        StickSlip = 1,
        WeightOnBitMin = 1,
        Whirl = 1
    };

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

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

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

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