using Util.Tools.Offices.Core;
using Xunit;
namespace Util.Tools.Offices.Tests.Integration.Core {
///
/// 表格测试
///
public class TableTest {
///
/// 表格
///
private readonly Table _table;
///
/// 测试初始化
///
public TableTest() {
_table = new Table();
}
///
/// 测试默认值
///
[Fact]
public void Test_Default() {
Assert.True( _table.GetHeader().Count == 0 );
Assert.True( _table.GetBody().Count == 0 );
Assert.Equal( 0, _table.ColumnNumber );
}
///
/// 测试列数
///
[Fact]
public void TestColumnNumber_1() {
_table.AddBodyRow( "a" );
Assert.Equal( 1, _table.ColumnNumber );
}
///
/// 测试列数
///
[Fact]
public void TestColumnNumber_2() {
_table.AddBodyRow( "a", 2 );
Assert.Equal( 2, _table.ColumnNumber );
}
///
/// 测试列数
///
[Fact]
public void TestColumnNumber_3() {
_table.AddHeadRow( "a" );
Assert.Equal( 1, _table.ColumnNumber );
}
///
/// 测试列数
///
[Fact]
public void TestColumnNumber_4() {
_table.AddHeadRow( "a", "b" );
Assert.Equal( 2, _table.ColumnNumber );
}
///
/// 测试列数
///
[Fact]
public void TestColumnNumber_5() {
_table.AddHeadRow( "a", "b" );
_table.AddBodyRow( "a", 2 );
Assert.Equal( 2, _table.ColumnNumber );
}
///
/// 测试自动调整第一行的列数
///
[Fact]
public void TestFirstRow_1() {
_table.AddHeadRow( "a" );
Assert.Equal( 1, _table.GetHeader()[0].ColumnNumber );
_table.AddHeadRow( "b", "c" );
Assert.Equal( 2, _table.GetHeader()[0].ColumnNumber );
}
///
/// 测试自动调整第一行的列数
///
[Fact]
public void TestFirstRow_2() {
_table.AddHeadRow( "a", "b" );
Assert.Equal( 2, _table.GetHeader()[0].ColumnNumber );
_table.AddHeadRow( "c", "d" );
Assert.Equal( 2, _table.GetHeader()[0].ColumnNumber );
}
///
/// 测试自动调整第一行的列数
///
[Fact]
public void TestFirstRow_3() {
_table.AddHeadRow( "a" );
Assert.Equal( 1, _table.GetHeader()[0].ColumnNumber );
_table.AddBodyRow( "c", "d" );
Assert.Equal( 2, _table.GetHeader()[0].ColumnNumber );
}
///
/// 添加表头
///
[Fact]
public void TestAddHeadRow_1() {
_table.AddHeadRow( "a" );
Assert.True( _table.GetHeader().Count == 1 );
Assert.Equal( "a", _table.GetHeader()[0][0].Value );
Assert.Equal( 1, _table.GetHeader()[0][0].ColumnSpan );
Assert.Equal( 1, _table.GetHeader()[0][0].RowSpan );
Assert.Equal( 0, _table.GetHeader()[0][0].RowIndex );
Assert.Equal( 0, _table.GetHeader()[0][0].ColumnIndex );
}
///
/// 添加表头
///
[Fact]
public void TestAddHeadRow_2() {
_table.AddHeadRow( "a", "b" );
Assert.True( _table.GetHeader().Count == 1, _table.GetHeader().Count.ToString() );
Assert.Equal( "a", _table.GetHeader()[0][0].Value );
Assert.Equal( "b", _table.GetHeader()[0][1].Value );
Assert.Equal( 1, _table.GetHeader()[0][1].ColumnSpan );
Assert.Equal( 1, _table.GetHeader()[0][1].RowSpan );
Assert.Equal( 0, _table.GetHeader()[0][1].RowIndex );
Assert.Equal( 1, _table.GetHeader()[0][1].ColumnIndex );
}
///
/// 添加表头
///
[Fact]
public void TestAddHeadRow_3() {
_table.AddHeadRow( "a", "b" );
_table.AddHeadRow( "c", "d" );
Assert.True( _table.GetHeader().Count == 2, _table.GetHeader().Count.ToString() );
Assert.Equal( "a", _table.GetHeader()[0][0].Value );
Assert.Equal( "b", _table.GetHeader()[0][1].Value );
Assert.Equal( "c", _table.GetHeader()[1][0].Value );
Assert.Equal( "d", _table.GetHeader()[1][1].Value );
}
///
/// 添加表头
///
[Fact]
public void TestAddHeadRow_4() {
_table.AddHeadRow( new Cell( "a" ) );
Assert.True( _table.GetHeader().Count == 1 );
Assert.Equal( "a", _table.GetHeader()[0][0].Value );
}
///
/// 添加表头
///
[Fact]
public void TestAddHeadRow_5() {
_table.AddHeadRow( "a" );
_table.AddHeadRow( "a", "b" );
Assert.True( _table.GetHeader().Count == 2 );
Assert.Equal( "a", _table.GetHeader()[0][0].Value );
Assert.Equal( 2, _table.GetHeader()[0][0].ColumnSpan );
Assert.Equal( 2, _table.ColumnNumber );
}
///
/// 添加表头
///
[Fact]
public void TestAddHeadRow_6() {
_table.AddHeadRow( new Cell( "a" ) );
_table.AddHeadRow( new Cell( "a" ), new Cell( "b", 2 ) );
Assert.True( _table.GetHeader().Count == 2 );
Assert.Equal( "a", _table.GetHeader()[0][0].Value );
Assert.Equal( 3, _table.GetHeader()[0][0].ColumnSpan );
Assert.Equal( 3, _table.ColumnNumber );
}
///
/// 当设置行跨度时,将为受影响的行添加占位单元格
///
[Fact]
public void TestAddHeadRow_7() {
_table.AddHeadRow( new Cell( "a", 1, 2 ) );
Assert.True( _table.GetHeader().Count == 2, "==2" );
Assert.Equal( 0, _table.GetHeader()[1][0].ColumnIndex );
Assert.True( _table.GetHeader()[1][0].IsNull() );
}
///
/// 为受影响的行添加占位单元格
///
[Fact]
public void TestAddHeadRow_8() {
_table.AddHeadRow( new Cell( "a", 1, 3 ), new Cell( "b", 1, 3 ), new Cell( "c", 1, 3 ), new Cell( "d", 2, 2 ) );
_table.AddHeadRow( new Cell( "e", 2 ) );
Assert.True( _table.GetHeader().Count == 3, "==3" );
Assert.Equal( "e", _table.GetHeader()[1][4].Value.ToString() );
Assert.Equal( 5, _table.GetHeader()[1][4].ColumnIndex );
}
///
/// 测试表头行数
///
[Fact]
public void TestHeadRowCount() {
Assert.Equal( 0, _table.HeadRowCount );
_table.AddHeadRow( "a", "b" );
Assert.Equal( 1, _table.HeadRowCount );
_table.AddHeadRow( "a", "b" );
Assert.Equal( 2, _table.HeadRowCount );
}
///
/// 添加正文
///
[Fact]
public void TestAddBodyRow() {
Assert.Empty( _table.GetBody());
_table.AddBodyRow( "a", 1 );
Assert.Single( _table.GetBody());
Assert.Equal( "a", _table.GetBody()[0][0].Value.ToString() );
Assert.Equal( "1", _table.GetBody()[0][1].Value.ToString() );
_table.AddBodyRow( "b" );
Assert.Equal( 2, _table.GetBody().Count );
}
///
/// 测试总标题
///
[Fact]
public void TestTitle() {
Assert.Equal( "", _table.Title );
_table.AddBodyRow( "a" );
Assert.Equal( "", _table.Title );
_table.AddHeadRow( "a", "b" );
Assert.Equal( "", _table.Title );
_table.ClearHeader();
_table.AddHeadRow( "a" );
Assert.Equal( "a", _table.Title );
_table.AddHeadRow( "c", "d" );
Assert.Equal( "a", _table.Title );
}
}
}