Небольшие фиксы

This commit is contained in:
2025-04-23 09:13:42 +04:00
parent 0761357460
commit 3bbbe6d92f
4 changed files with 19 additions and 19 deletions

View File

@@ -55,21 +55,21 @@ internal class ReportContract(
var data = await GetRoomHistoryGroupedAsync(ct)
?? throw new InvalidOperationException("No found data");
var header = new List<string[]> { new[] { "RoomId", "OwnerFIO", "Address", "Type", "DateChanged" } };
var header = new List<string[]> { new[] { "Address", "OwnerFIO", "Type", "DateChanged" } };
var rows = data.SelectMany(roomGroup =>
{
var baseRow = new[] { roomGroup.Room.Id, roomGroup.Room.OwnerFIO, roomGroup.Room.Address, roomGroup.Room.Type.ToString(), "" };
var baseRow = new[] { roomGroup.Room.Address, roomGroup.Room.OwnerFIO, roomGroup.Room.Type.ToString(), "" };
var historyRows = roomGroup.History.Select(h =>
new[] { "", h.OwnerFIO, "", h.Type.ToString(), h.DateChange.ToString("yyyy-MM-dd HH:mm") });
new[] { "", h.OwnerFIO, h.Type.ToString(), h.DateChange.ToString("yyyy-MM-dd HH:mm") });
return new List<string[]> { baseRow }.Union(historyRows);
}).ToList();
var res = _baseWordBuilder
.AddHeader("История изменений помещений")
.AddParagraph($"Сформировано: {DateTime.Now:dd.MM.yyyy HH:mm}")
.AddTable([20, 20, 30, 15, 20], header.Concat(rows).ToList())
.AddTable([100, 30, 20, 25], header.Concat(rows).ToList())
.Build();
res.Position = 0;
return res;

View File

@@ -206,7 +206,7 @@ public class ReportContractTests
_baseWordBuilderMock.Verify(x => x.AddHeader("История изменений помещений"), Times.Once);
_baseWordBuilderMock.Verify(x => x.AddParagraph(It.Is<string>(s => s.StartsWith("Сформировано:"))), Times.Once);
_baseWordBuilderMock.Verify(x => x.AddTable(new[] { 20, 20, 30, 15, 20 }, It.IsAny<List<string[]>>()), Times.Once);
_baseWordBuilderMock.Verify(x => x.AddTable(new[] { 100, 30, 20, 25 }, It.IsAny<List<string[]>>()), Times.Once);
_baseWordBuilderMock.Verify(x => x.Build(), Times.Once);
}
@@ -263,27 +263,23 @@ public class ReportContractTests
Assert.That(actualTableData.Count, Is.EqualTo(4));
// Verify header
Assert.That(actualTableData[0], Is.EqualTo(new[] { "RoomId", "OwnerFIO", "Address", "Type", "DateChanged" }));
Assert.That(actualTableData[0], Is.EqualTo(new[] { "Address", "OwnerFIO", "Type", "DateChanged" }));
// Verify room row
Assert.That(actualTableData[1][0], Is.EqualTo("room1"));
Assert.That(actualTableData[1][0], Is.EqualTo("ул. Ленина, д. 1"));
Assert.That(actualTableData[1][1], Is.EqualTo("Иванов"));
Assert.That(actualTableData[1][2], Is.EqualTo("ул. Ленина, д. 1"));
Assert.That(actualTableData[1][3], Is.EqualTo("Office"));
Assert.That(actualTableData[1][4], Is.EqualTo(""));
Assert.That(actualTableData[1][2], Is.EqualTo("Office"));
Assert.That(actualTableData[1][3], Is.EqualTo(""));
// Verify history rows
Assert.That(actualTableData[2][0], Is.EqualTo(""));
Assert.That(actualTableData[2][1], Is.EqualTo("Иванов"));
Assert.That(actualTableData[2][2], Is.EqualTo(""));
Assert.That(actualTableData[2][3], Is.EqualTo("Office"));
Assert.That(actualTableData[2][4], Is.EqualTo("2023-01-01 00:00"));
Assert.That(actualTableData[2][2], Is.EqualTo("Office"));
Assert.That(actualTableData[2][3], Is.EqualTo("2023-01-01 00:00"));
Assert.That(actualTableData[3][0], Is.EqualTo(""));
Assert.That(actualTableData[3][1], Is.EqualTo("Иванов И.И."));
Assert.That(actualTableData[3][2], Is.EqualTo(""));
Assert.That(actualTableData[3][3], Is.EqualTo("Office"));
Assert.That(actualTableData[3][4], Is.EqualTo("2023-01-02 00:00"));
Assert.That(actualTableData[3][2], Is.EqualTo("Office"));
Assert.That(actualTableData[3][3], Is.EqualTo("2023-01-02 00:00"));
}
[Test]
@@ -405,7 +401,7 @@ public class ReportContractTests
Assert.That(pieData[0], Is.EqualTo((salaryList[0].Date.ToShortDateString(), 100)));
Assert.That(pieData[1], Is.EqualTo((salaryList[1].Date.ToShortDateString(), 200)));
_basePdfBuilderMock.Verify(x => x.AddHeader("Зарплатная ведомость"), Times.Once);
_basePdfBuilderMock.Verify(x => x.AddHeader("Зарплатная ведомость у Иванов Иван"), Times.Once);
_basePdfBuilderMock.Verify(x => x.AddParagraph(It.Is<string>(s => s.Contains("за период"))), Times.Once);
_basePdfBuilderMock.Verify(x => x.AddPieChart("Начисления", It.IsAny<List<(string, double)>>()), Times.Once);
_basePdfBuilderMock.Verify(x => x.Build(), Times.Once);

View File

@@ -47,6 +47,8 @@ public class ReportControllerTests : BaseWebApiControllerTest
// Arrange
var room = TwoFromTheCasketDb.InsertRoomToDatabaseAndReturn(address: "ул. Ленина, д. 1", owner: "Иванов Иван", space: 45, type: TypeRoom.Office);
TwoFromTheCasketDb.InsertRoomHistoryToDatabaseAndReturn(roomId: room.Id, owner: "Петров Петр", type: TypeRoom.PublicBuilding, date: DateTime.UtcNow.AddMonths(-1));
TwoFromTheCasketDb.InsertRoomHistoryToDatabaseAndReturn(roomId: room.Id, owner: "Саша", type: TypeRoom.PublicBuilding, date: DateTime.UtcNow.AddDays(-20));
TwoFromTheCasketDb.InsertRoomHistoryToDatabaseAndReturn(roomId: room.Id, owner: "Дима", type: TypeRoom.Storage, date: DateTime.UtcNow.AddDays(-1));
// Act
var response = await HttpClient.GetAsync("/api/report/LoadRoomHistory");
@@ -111,7 +113,9 @@ public class ReportControllerTests : BaseWebApiControllerTest
var worker = TwoFromTheCasketDb.InsertWorkerToDatabaseAndReturn(fio: "Иванов", specializationId: specialization.Id);
var complited = TwoFromTheCasketDb.InsertComplitedWorkToDatabaseAndReturn(workId: work.Id, roomId: room.Id, date: date);
var complited2 = TwoFromTheCasketDb.InsertComplitedWorkToDatabaseAndReturn(workId: work.Id, roomId: room.Id, date: date);
TwoFromTheCasketDb.InsertWorkerComplitedWorkToDatabaseAndReturn(workerId: worker.Id, complitedWorkId: complited.Id, numberOfWorkingHour: 10);
TwoFromTheCasketDb.InsertWorkerComplitedWorkToDatabaseAndReturn(workerId: worker.Id, complitedWorkId: complited2.Id, numberOfWorkingHour: 100);
// Act
var response = await HttpClient.GetAsync($"/api/report/LoadComplitedWork?fromDate={date.AddDays(-3):yyyy-MM-dd}&toDate={date.AddDays(3):yyyy-MM-dd}");

View File

@@ -9,5 +9,5 @@ namespace TwoFromTheCasketTests.Infrastructure;
public class ConfigurationDatabaseTest : IConfigurationDatabase
{
public string ConnectionString => "Host=localhost;Port=5432;Database=TwoFromTheCasketDb;Username=postgres;Password=123456";
public string ConnectionString => "Host=localhost;Port=5432;Database=TwoFromTheCasketDb;Username=postgres;Password=1234";
}