namespace RhSolutions.Tests; [ExcelTestSettings(OutOfProcess = true, Workbook = @"TestWorkbooks\ExcelTableTest.xlsx")] public class ExcelTablesTests : IDisposable { ExcelTable.ExcelTable table; public ExcelTablesTests() { Util.Application.Workbooks.Add(); Worksheet worksheet = Util.Workbook.Sheets[1]; Range range = worksheet.Range["E7:G9"]; table = new(range); } [ExcelFact] public void CanReadExcelTable() { Assert.Equal(3, table.Columns.Where(c => c.Header.StartsWith("Столбец")).Count()); Assert.Equal("Столбец 1", table.Rows.First()[0].Value); Assert.Equal("Столбец 2", table[0, 1].Value); Assert.Equal(123d, table[1, 1].Value); Assert.Null(table[1, 2].Value); } [ExcelFact] public void CanModifyTableCells() { table[2, 1].Value = 1; table[1, 1].Value = (double)table[1, 1].Value + 123; Assert.Equal(1d, table[2, 1].Value); Assert.Equal(246d, table[1, 1].Value); } [ExcelFact] public void CanFindInTable() { table[2, 0].Value = "Find!"; table[2, 1].Value = "Find this!"; table[2, 2].Value = "Find that!"; var cells = table.Find("Find"); Assert.Collection(cells, item => Assert.Equal("Find!", item.Value), item => Assert.Equal("Find this!", item.Value), item => Assert.Equal("Find that!", item.Value)); Assert.Equal(0, table.Find("Значение").First().ParentColumn.Index); Assert.Equal(3, table.Rows[2].Find("Find").Count()); Assert.Empty(table.Columns[1].Find("Пусто")); } [ExcelFact] public void CanAddColumns() { int originalCount = table.Columns.Count(); table.Columns[1].AddLeft(); Assert.Equal(originalCount + 1, table.Columns.Count()); } public void Dispose() { Util.Application.ActiveWindow.Close(SaveChanges: false); } }