forked from ddrilling/AsbCloudServer
Merge pull request 'Автотест для проверки категорий операций между файлом шаблона и базой данных' (#270) from feature/#32021538-match-categories-integration-test into dev
Reviewed-on: http://test.digitaldrilling.ru:8080/DDrilling/AsbCloudServer/pulls/270
This commit is contained in:
commit
d517033415
Binary file not shown.
Binary file not shown.
@ -29,4 +29,10 @@ public interface IWellOperationClient
|
||||
|
||||
[Get(BaseRoute + "/export")]
|
||||
Task<IApiResponse<PhysicalFileResult>> ExportAsync(int idWell, int idType);
|
||||
|
||||
[Get(BaseRoute + "/template")]
|
||||
Task<IApiResponse<Stream>> GetTemplate(int idWell, int idType);
|
||||
|
||||
[Get(BaseRoute + "/categories")]
|
||||
Task<IApiResponse<IEnumerable<WellOperationCategoryDto>>> GetCategories(int idWell, bool includeParents, bool includeHidden);
|
||||
}
|
@ -1,13 +1,15 @@
|
||||
using System.Net;
|
||||
using System.Reflection;
|
||||
using AsbCloudApp.Data.WellOperation;
|
||||
using AsbCloudApp.Requests;
|
||||
using AsbCloudDb.Model;
|
||||
using AsbCloudInfrastructure;
|
||||
using AsbCloudWebApi.IntegrationTests.Clients;
|
||||
using AsbCloudWebApi.IntegrationTests.Data;
|
||||
using ClosedXML.Excel;
|
||||
using Mapster;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Refit;
|
||||
using System.Net;
|
||||
using System.Reflection;
|
||||
using Xunit;
|
||||
|
||||
namespace AsbCloudWebApi.IntegrationTests.Controllers.WellOperations;
|
||||
@ -188,6 +190,46 @@ public class WellOperationControllerTest : BaseIntegrationTest
|
||||
Assert.True(response.ContentHeaders?.ContentLength > 0);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(WellOperation.IdOperationTypePlan)]
|
||||
[InlineData(WellOperation.IdOperationTypeFact)]
|
||||
public async Task MatchCategoriesBetweenTemplateAndDb_returns_success(int idType)
|
||||
{
|
||||
//arrange
|
||||
var well = await dbContext.Wells.FirstAsync();
|
||||
var responseTemplate = await client.GetTemplate(well.Id, idType);
|
||||
var stream = responseTemplate.Content;
|
||||
|
||||
using var workbook = new XLWorkbook(stream);
|
||||
var sheet = workbook.GetWorksheet("Справочники");
|
||||
|
||||
var count = sheet.RowsUsed().Count() - 1;
|
||||
|
||||
var categoryCaptionsInTemplate = new List<string>();
|
||||
for (var i = 0; i < count; i++)
|
||||
{
|
||||
var xlRow = sheet.Row(i + 2);
|
||||
var rowNumber = xlRow.RowNumber();
|
||||
|
||||
var xlCell = xlRow.Cell(1);
|
||||
var cellValue = xlCell.GetText().Trim();
|
||||
|
||||
categoryCaptionsInTemplate.Add(cellValue);
|
||||
}
|
||||
|
||||
var responseCategories = await client.GetCategories(well.Id, false, false);
|
||||
var categories = responseCategories.Content;
|
||||
var categoryCaptionsInDb = categories!.Select(c => c.Name.Trim());
|
||||
|
||||
var notExistedInTemplate = categoryCaptionsInDb.Except(categoryCaptionsInTemplate);
|
||||
var notExistedInDb = categoryCaptionsInTemplate.Except(categoryCaptionsInDb);
|
||||
|
||||
//assert
|
||||
Assert.True(categoryCaptionsInDb.Count() == categoryCaptionsInTemplate.Count());
|
||||
Assert.True(notExistedInTemplate.Count() == 0);
|
||||
Assert.True(notExistedInDb.Count() == 0);
|
||||
}
|
||||
|
||||
private static WellOperation CreateWellOperation(int idWell, int idType = WellOperation.IdOperationTypePlan) =>
|
||||
new()
|
||||
{
|
||||
|
@ -36,6 +36,7 @@ namespace AsbCloudWebApi.Tests.Services.WellCompositeOperation
|
||||
new(){Id = 5036, Name = "Промывка"},
|
||||
new(){Id = 5012, Name = "Подъем инструмента"},
|
||||
new(){Id = 5083, Name = "Проработка принудительная"},
|
||||
new(){Id = 5113, Name = "Бурение"},
|
||||
};
|
||||
|
||||
private readonly static IEnumerable<WellSectionTypeDto> sectionTypes = new List<WellSectionTypeDto>()
|
||||
@ -224,7 +225,7 @@ namespace AsbCloudWebApi.Tests.Services.WellCompositeOperation
|
||||
// assert
|
||||
var compositeWellOperations = result.WellOperationsComposite;
|
||||
Assert.Single(compositeWellOperations);
|
||||
Assert.Equal(5003, compositeWellOperations.FirstOrDefault()!.IdCategory);
|
||||
Assert.Equal(5113, compositeWellOperations.FirstOrDefault()!.IdCategory);
|
||||
Assert.Equal(1.5, compositeWellOperations.FirstOrDefault()!.DurationHours);
|
||||
Assert.Equal(10, compositeWellOperations.FirstOrDefault()!.DepthStart);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user