(t *testing.T)
| 10 | ) |
| 11 | |
| 12 | func 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, |
nothing calls this directly
no test coverage detected