From f01228d94554669146137dea9614d87df22c01f3 Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Fri, 31 Mar 2023 15:27:31 +0300 Subject: Add Excel Table classes --- RhSolutions.Tests/ExcelTablesTests.cs | 65 +++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 RhSolutions.Tests/ExcelTablesTests.cs (limited to 'RhSolutions.Tests/ExcelTablesTests.cs') diff --git a/RhSolutions.Tests/ExcelTablesTests.cs b/RhSolutions.Tests/ExcelTablesTests.cs new file mode 100644 index 0000000..3ce71bc --- /dev/null +++ b/RhSolutions.Tests/ExcelTablesTests.cs @@ -0,0 +1,65 @@ +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); + } +} -- cgit v1.2.3