RhSolutions-AddIn/RhSolutions.Tests/ExcelTablesTests.cs
2023-03-31 15:27:31 +03:00

66 lines
1.9 KiB
C#

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);
}
}