/
valzem
/
MatControl
Обзор
Документация
Войти
/
valzem
/
MatControl
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
tests/MatControl.Tests/ReportingServiceTests.cs
68 строк
2 KB
MatControl Dev
Этап 5-6: управление ОС и МЗ (CRUD, экспорт в Excel, формы)
07 авг 2026, 10:23
07 авг 2026, 10:23
8763564
Код
Авторство
О чём код?
using MatControl.Business; using MatControl.Domain; using Microsoft.Extensions.Logging.Abstractions; using OfficeOpenXml; namespace MatControl.Tests; public class ReportingServiceTests : IDisposable { private readonly string _filePath; public ReportingServiceTests() { _filePath = Path.Combine(Path.GetTempPath(), $"matcontrol_export_{Guid.NewGuid():N}.xlsx"); } [Fact] public async Task ExportAssetsToExcelAsync_CreatesValidFile() { var service = new ReportingService(NullLogger<ReportingService>.Instance); var assets = new List<AssetWithHolder> { new(new Asset { InventoryNumber = "INV-1", Name = "Компьютер", Price = 1000, State = AssetState.Рабочее, YearInUse = 2020 }, new Employee { FullName = "Иванов Иван", Room = "5" }) }; var result = await service.ExportAssetsToExcelAsync(assets, _filePath); Assert.True(result.IsSuccess, result.Message); Assert.True(File.Exists(_filePath)); using var package = new ExcelPackage(new FileInfo(_filePath)); var sheet = package.Workbook.Worksheets["Основные средства"]; Assert.NotNull(sheet); Assert.Equal("INV-1", sheet.Cells[2, 1].Value); Assert.Equal("Компьютер", sheet.Cells[2, 2].Value); Assert.Equal("Иванов Иван", sheet.Cells[2, 6].Value); } [Fact] public async Task ExportSuppliesToExcelAsync_CreatesValidFile() { var service = new ReportingService(NullLogger<ReportingService>.Instance); var supplies = new List<Supply> { new() { Name = "Картридж", Quantity = 5, Price = 10, TotalSum = 50 } }; var result = await service.ExportSuppliesToExcelAsync(supplies, _filePath); Assert.True(result.IsSuccess, result.Message); Assert.True(File.Exists(_filePath)); using var package = new ExcelPackage(new FileInfo(_filePath)); var sheet = package.Workbook.Worksheets["Материальные запасы"]; Assert.NotNull(sheet); Assert.Equal("Картридж", sheet.Cells[2, 1].Value); Assert.Equal(50d, sheet.Cells[2, 4].Value); } public void Dispose() { if (File.Exists(_filePath)) { File.Delete(_filePath); } } }