@@ -27,6 +27,10 @@ func TestAddTable(t *testing.T) {
27
27
ShowHeaderRow : boolPtr (false ),
28
28
}))
29
29
assert .NoError (t , f .AddTable ("Sheet2" , & Table {Range : "F1:F1" , StyleName : "TableStyleMedium8" }))
30
+ // Test get tables in worksheet
31
+ tables , err := f .GetTables ("Sheet2" )
32
+ assert .Len (t , tables , 3 )
33
+ assert .NoError (t , err )
30
34
31
35
// Test add table with already exist table name
32
36
assert .Equal (t , f .AddTable ("Sheet2" , & Table {Name : "Table1" }), ErrExistsTableName )
@@ -74,6 +78,48 @@ func TestAddTable(t *testing.T) {
74
78
assert .NoError (t , f .AddTable ("Sheet1" , & Table {Range : "A1:B2" }))
75
79
}
76
80
81
+ func TestGetTables (t * testing.T ) {
82
+ f := NewFile ()
83
+ // Test get tables in none table worksheet
84
+ tables , err := f .GetTables ("Sheet1" )
85
+ assert .Len (t , tables , 0 )
86
+ assert .NoError (t , err )
87
+ // Test get tables in not exist worksheet
88
+ _ , err = f .GetTables ("SheetN" )
89
+ assert .EqualError (t , err , "sheet SheetN does not exist" )
90
+ // Test adjust table with unsupported charset
91
+ assert .NoError (t , f .AddTable ("Sheet1" , & Table {Range : "B26:A21" }))
92
+ f .Pkg .Store ("xl/tables/table1.xml" , MacintoshCyrillicCharset )
93
+ _ , err = f .GetTables ("Sheet1" )
94
+ assert .EqualError (t , err , "XML syntax error on line 1: invalid UTF-8" )
95
+ // Test adjust table with no exist table parts
96
+ f .Pkg .Delete ("xl/tables/table1.xml" )
97
+ tables , err = f .GetTables ("Sheet1" )
98
+ assert .Len (t , tables , 0 )
99
+ assert .NoError (t , err )
100
+ }
101
+
102
+ func TestDeleteTable (t * testing.T ) {
103
+ f := NewFile ()
104
+ assert .NoError (t , f .AddTable ("Sheet1" , & Table {Range : "A1:B4" , Name : "Table1" }))
105
+ assert .NoError (t , f .AddTable ("Sheet1" , & Table {Range : "B26:A21" , Name : "Table2" }))
106
+ assert .NoError (t , f .DeleteTable ("Table2" ))
107
+ assert .NoError (t , f .DeleteTable ("Table1" ))
108
+ // Test delete table with invalid table name
109
+ assert .EqualError (t , f .DeleteTable ("Table 1" ), newInvalidNameError ("Table 1" ).Error ())
110
+ // Test delete table with no exist table name
111
+ assert .EqualError (t , f .DeleteTable ("Table" ), newNoExistTableError ("Table" ).Error ())
112
+ // Test delete table with unsupported charset
113
+ f .Sheet .Delete ("xl/worksheets/sheet1.xml" )
114
+ f .Pkg .Store ("xl/worksheets/sheet1.xml" , MacintoshCyrillicCharset )
115
+ assert .EqualError (t , f .DeleteTable ("Table1" ), "XML syntax error on line 1: invalid UTF-8" )
116
+ // Test delete table with invalid table range
117
+ f = NewFile ()
118
+ assert .NoError (t , f .AddTable ("Sheet1" , & Table {Range : "A1:B4" , Name : "Table1" }))
119
+ f .Pkg .Store ("xl/tables/table1.xml" , []byte ("<table name=\" Table1\" ref=\" -\" />" ))
120
+ assert .EqualError (t , f .DeleteTable ("Table1" ), ErrParameterInvalid .Error ())
121
+ }
122
+
77
123
func TestSetTableHeader (t * testing.T ) {
78
124
f := NewFile ()
79
125
_ , err := f .setTableHeader ("Sheet1" , true , 1 , 0 , 1 )
0 commit comments