MCPcopy
hub / github.com/qax-os/excelize / TestAddTable

Function TestAddTable

table_test.go:12–88  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

10)
11
12func TestAddTable(t *testing.T) {
13 f, err := prepareTestBook1()
14 assert.NoError(t, err)
15 assert.NoError(t, f.AddTable("Sheet1", &Table{Range: "B26:A21"}))
16 assert.NoError(t, f.AddTable("Sheet2", &Table{
17 Range: "A2:B5",
18 Name: "table",
19 StyleName: "TableStyleMedium2",
20 ShowColumnStripes: true,
21 ShowFirstColumn: true,
22 ShowLastColumn: true,
23 ShowRowStripes: boolPtr(true),
24 }))
25 assert.NoError(t, f.AddTable("Sheet2", &Table{
26 Range: "D1:D11",
27 ShowHeaderRow: boolPtr(false),
28 }))
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)
34
35 // Test add table with already exist table name
36 assert.Equal(t, f.AddTable("Sheet2", &Table{Name: "Table1"}), ErrExistsTableName)
37 // Test add table with invalid table options
38 assert.Equal(t, f.AddTable("Sheet1", nil), ErrParameterInvalid)
39 // Test add table in not exist worksheet
40 assert.EqualError(t, f.AddTable("SheetN", &Table{Range: "B26:A21"}), "sheet SheetN does not exist")
41 // Test add table with illegal cell reference
42 assert.Equal(t, f.AddTable("Sheet1", &Table{Range: "A:B1"}), newCellNameToCoordinatesError("A", newInvalidCellNameError("A")))
43 assert.Equal(t, f.AddTable("Sheet1", &Table{Range: "A1:B"}), newCellNameToCoordinatesError("B", newInvalidCellNameError("B")))
44
45 assert.NoError(t, f.SaveAs(filepath.Join("test", "TestAddTable.xlsx")))
46
47 // Test add table with invalid sheet name
48 assert.Equal(t, ErrSheetNameInvalid, f.AddTable("Sheet:1", &Table{Range: "B26:A21"}))
49 // Test addTable with illegal cell reference
50 f = NewFile()
51 assert.Equal(t, newCoordinatesToCellNameError(0, 0), f.addTable("sheet1", "", 0, 0, 0, 0, 0, nil))
52 assert.Equal(t, newCoordinatesToCellNameError(0, 0), f.addTable("sheet1", "", 1, 1, 0, 0, 0, nil))
53 // Test set defined name and add table with invalid name
54 for _, cases := range []struct {
55 name string
56 err error
57 }{
58 {name: "1Table", err: newInvalidNameError("1Table")},
59 {name: "-Table", err: newInvalidNameError("-Table")},
60 {name: "'Table", err: newInvalidNameError("'Table")},
61 {name: "Table 1", err: newInvalidNameError("Table 1")},
62 {name: "A&B", err: newInvalidNameError("A&B")},
63 {name: "_1Table'", err: newInvalidNameError("_1Table'")},
64 {name: "\u0f5f\u0fb3\u0f0b\u0f21", err: newInvalidNameError("\u0f5f\u0fb3\u0f0b\u0f21")},
65 {name: strings.Repeat("c", MaxFieldLength+1), err: ErrNameLength},
66 } {
67 assert.Equal(t, cases.err, f.AddTable("Sheet1", &Table{
68 Range: "A1:B2",
69 Name: cases.name,

Callers

nothing calls this directly

Calls 14

prepareTestBook1Function · 0.85
boolPtrFunction · 0.85
newInvalidCellNameErrorFunction · 0.85
NewFileFunction · 0.85
newInvalidNameErrorFunction · 0.85
GetTablesMethod · 0.80
LenMethod · 0.80
SaveAsMethod · 0.80
addTableMethod · 0.80
SetDefinedNameMethod · 0.80

Tested by

no test coverage detected