66 lines
1.9 KiB
C#
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);
|
|
}
|
|
}
|