summaryrefslogtreecommitdiff
path: root/rows_test.go
diff options
context:
space:
mode:
authorxuri <xuri.me@gmail.com>2019-03-23 20:08:06 +0800
committerxuri <xuri.me@gmail.com>2019-03-23 20:08:06 +0800
commit40ff5dc1a7d7aa42f5db9cf9dfe858cc3820b44e (patch)
tree9683b0a18a08f6603065506589a3c86dba5b8bb1 /rows_test.go
parent2874d75555102b8266477cdda2966ff37dde6b12 (diff)
refactor: handler error instead of panic,
Exported functions: SetCellStyle InsertCol RemoveCol RemoveRow InsertRow DuplicateRow DuplicateRowTo SetRowHeight GetRowHeight GetCellValue GetCellFormula GetCellHyperLink SetCellHyperLink SetCellInt SetCellBool SetCellFloat SetCellStr SetCellDefault GetCellStyle SetCellValue MergeCell SetSheetRow SetRowVisible GetRowVisible SetRowOutlineLevel GetRowOutlineLevel GetRows Columns SearchSheet AddTable GetPicture AutoFilter GetColVisible SetColVisible GetColOutlineLevel SetColOutlineLevel SetColWidth GetColWidth inner functions: adjustHelper adjustMergeCells adjustAutoFilter prepareCell setDefaultTimeStyle timeToExcelTime addDrawingChart addDrawingVML addDrawingPicture getTotalRowsCols checkRow addDrawingShape addTable
Diffstat (limited to 'rows_test.go')
-rw-r--r--rows_test.go175
1 files changed, 98 insertions, 77 deletions
diff --git a/rows_test.go b/rows_test.go
index 50e26dd..53c0677 100644
--- a/rows_test.go
+++ b/rows_test.go
@@ -23,13 +23,16 @@ func TestRows(t *testing.T) {
collectedRows := make([][]string, 0)
for rows.Next() {
- collectedRows = append(collectedRows, trimSliceSpace(rows.Columns()))
+ columns, err := rows.Columns()
+ assert.NoError(t, err)
+ collectedRows = append(collectedRows, trimSliceSpace(columns))
}
if !assert.NoError(t, rows.Error()) {
t.FailNow()
}
- returnedRows := xlsx.GetRows(sheet2)
+ returnedRows, err := xlsx.GetRows(sheet2)
+ assert.NoError(t, err)
for i := range returnedRows {
returnedRows[i] = trimSliceSpace(returnedRows[i])
}
@@ -54,21 +57,22 @@ func TestRowHeight(t *testing.T) {
xlsx := NewFile()
sheet1 := xlsx.GetSheetName(1)
- assert.Panics(t, func() {
- xlsx.SetRowHeight(sheet1, 0, defaultRowHeightPixels+1.0)
- })
+ assert.EqualError(t, xlsx.SetRowHeight(sheet1, 0, defaultRowHeightPixels+1.0), "invalid row number 0")
- assert.Panics(t, func() {
- xlsx.GetRowHeight("Sheet1", 0)
- })
+ height, err := xlsx.GetRowHeight("Sheet1", 0)
+ assert.EqualError(t, err, "invalid row number 0")
- xlsx.SetRowHeight(sheet1, 1, 111.0)
- assert.Equal(t, 111.0, xlsx.GetRowHeight(sheet1, 1))
+ assert.NoError(t, xlsx.SetRowHeight(sheet1, 1, 111.0))
+ height, err = xlsx.GetRowHeight(sheet1, 1)
+ assert.NoError(t, err)
+ assert.Equal(t, 111.0, height)
- xlsx.SetRowHeight(sheet1, 4, 444.0)
- assert.Equal(t, 444.0, xlsx.GetRowHeight(sheet1, 4))
+ assert.NoError(t, xlsx.SetRowHeight(sheet1, 4, 444.0))
+ height, err = xlsx.GetRowHeight(sheet1, 4)
+ assert.NoError(t, err)
+ assert.Equal(t, 444.0, height)
- err := xlsx.SaveAs(filepath.Join("test", "TestRowHeight.xlsx"))
+ err = xlsx.SaveAs(filepath.Join("test", "TestRowHeight.xlsx"))
if !assert.NoError(t, err) {
t.FailNow()
}
@@ -86,13 +90,11 @@ func TestRowVisibility(t *testing.T) {
xlsx.SetRowVisible("Sheet3", 2, true)
xlsx.GetRowVisible("Sheet3", 2)
- assert.Panics(t, func() {
- xlsx.SetRowVisible("Sheet3", 0, true)
- })
+ assert.EqualError(t, xlsx.SetRowVisible("Sheet3", 0, true), "invalid row number 0")
- assert.Panics(t, func() {
- xlsx.GetRowVisible("Sheet3", 0)
- })
+ visible, err := xlsx.GetRowVisible("Sheet3", 0)
+ assert.Equal(t, false, visible)
+ assert.EqualError(t, err, "invalid row number 0")
assert.NoError(t, xlsx.SaveAs(filepath.Join("test", "TestRowVisibility.xlsx")))
}
@@ -110,27 +112,23 @@ func TestRemoveRow(t *testing.T) {
xlsx.SetCellHyperLink(sheet1, "A5", "https://github.com/360EntSecGroup-Skylar/excelize", "External")
- assert.Panics(t, func() {
- xlsx.RemoveRow(sheet1, -1)
- })
+ assert.EqualError(t, xlsx.RemoveRow(sheet1, -1), "invalid row number -1")
- assert.Panics(t, func() {
- xlsx.RemoveRow(sheet1, 0)
- })
+ assert.EqualError(t, xlsx.RemoveRow(sheet1, 0), "invalid row number 0")
- xlsx.RemoveRow(sheet1, 4)
+ assert.NoError(t, xlsx.RemoveRow(sheet1, 4))
if !assert.Len(t, r.SheetData.Row, rowCount-1) {
t.FailNow()
}
xlsx.MergeCell(sheet1, "B3", "B5")
- xlsx.RemoveRow(sheet1, 2)
+ assert.NoError(t, xlsx.RemoveRow(sheet1, 2))
if !assert.Len(t, r.SheetData.Row, rowCount-2) {
t.FailNow()
}
- xlsx.RemoveRow(sheet1, 4)
+ assert.NoError(t, xlsx.RemoveRow(sheet1, 4))
if !assert.Len(t, r.SheetData.Row, rowCount-3) {
t.FailNow()
}
@@ -140,17 +138,17 @@ func TestRemoveRow(t *testing.T) {
t.FailNow()
}
- xlsx.RemoveRow(sheet1, 1)
+ assert.NoError(t, xlsx.RemoveRow(sheet1, 1))
if !assert.Len(t, r.SheetData.Row, rowCount-4) {
t.FailNow()
}
- xlsx.RemoveRow(sheet1, 2)
+ assert.NoError(t, xlsx.RemoveRow(sheet1, 2))
if !assert.Len(t, r.SheetData.Row, rowCount-5) {
t.FailNow()
}
- xlsx.RemoveRow(sheet1, 1)
+ assert.NoError(t, xlsx.RemoveRow(sheet1, 1))
if !assert.Len(t, r.SheetData.Row, rowCount-6) {
t.FailNow()
}
@@ -171,20 +169,16 @@ func TestInsertRow(t *testing.T) {
xlsx.SetCellHyperLink(sheet1, "A5", "https://github.com/360EntSecGroup-Skylar/excelize", "External")
- assert.Panics(t, func() {
- xlsx.InsertRow(sheet1, -1)
- })
+ assert.EqualError(t, xlsx.InsertRow(sheet1, -1), "invalid row number -1")
- assert.Panics(t, func() {
- xlsx.InsertRow(sheet1, 0)
- })
+ assert.EqualError(t, xlsx.InsertRow(sheet1, 0), "invalid row number 0")
- xlsx.InsertRow(sheet1, 1)
+ assert.NoError(t, xlsx.InsertRow(sheet1, 1))
if !assert.Len(t, r.SheetData.Row, rowCount+1) {
t.FailNow()
}
- xlsx.InsertRow(sheet1, 4)
+ assert.NoError(t, xlsx.InsertRow(sheet1, 4))
if !assert.Len(t, r.SheetData.Row, rowCount+2) {
t.FailNow()
}
@@ -198,11 +192,11 @@ func TestInsertRowInEmptyFile(t *testing.T) {
xlsx := NewFile()
sheet1 := xlsx.GetSheetName(1)
r := xlsx.workSheetReader(sheet1)
- xlsx.InsertRow(sheet1, 1)
+ assert.NoError(t, xlsx.InsertRow(sheet1, 1))
assert.Len(t, r.SheetData.Row, 0)
- xlsx.InsertRow(sheet1, 2)
+ assert.NoError(t, xlsx.InsertRow(sheet1, 2))
assert.Len(t, r.SheetData.Row, 0)
- xlsx.InsertRow(sheet1, 99)
+ assert.NoError(t, xlsx.InsertRow(sheet1, 99))
assert.Len(t, r.SheetData.Row, 0)
assert.NoError(t, xlsx.SaveAs(filepath.Join("test", "TestInsertRowInEmptyFile.xlsx")))
}
@@ -234,7 +228,7 @@ func TestDuplicateRow(t *testing.T) {
xlsx.SetCellStr(sheet, "A1", cells["A1"])
xlsx.SetCellStr(sheet, "B1", cells["B1"])
- xlsx.DuplicateRow(sheet, 1)
+ assert.NoError(t, xlsx.DuplicateRow(sheet, 1))
if !assert.NoError(t, xlsx.SaveAs(fmt.Sprintf(outFile, "TestDuplicateRow.FromSingleRow_1"))) {
t.FailNow()
}
@@ -243,12 +237,14 @@ func TestDuplicateRow(t *testing.T) {
"A2": cells["A1"], "B2": cells["B1"],
}
for cell, val := range expect {
- if !assert.Equal(t, val, xlsx.GetCellValue(sheet, cell), cell) {
+ v, err := xlsx.GetCellValue(sheet, cell)
+ assert.NoError(t, err)
+ if !assert.Equal(t, val, v, cell) {
t.FailNow()
}
}
- xlsx.DuplicateRow(sheet, 2)
+ assert.NoError(t, xlsx.DuplicateRow(sheet, 2))
if !assert.NoError(t, xlsx.SaveAs(fmt.Sprintf(outFile, "TestDuplicateRow.FromSingleRow_2"))) {
t.FailNow()
}
@@ -258,7 +254,9 @@ func TestDuplicateRow(t *testing.T) {
"A3": cells["A1"], "B3": cells["B1"],
}
for cell, val := range expect {
- if !assert.Equal(t, val, xlsx.GetCellValue(sheet, cell), cell) {
+ v, err := xlsx.GetCellValue(sheet, cell)
+ assert.NoError(t, err)
+ if !assert.Equal(t, val, v, cell) {
t.FailNow()
}
}
@@ -269,7 +267,7 @@ func TestDuplicateRow(t *testing.T) {
xlsx.SetCellStr(sheet, "A1", cells["A1"])
xlsx.SetCellStr(sheet, "B1", cells["B1"])
- xlsx.DuplicateRow(sheet, 1)
+ assert.NoError(t, xlsx.DuplicateRow(sheet, 1))
xlsx.SetCellStr(sheet, "A2", cells["A2"])
xlsx.SetCellStr(sheet, "B2", cells["B2"])
@@ -282,7 +280,9 @@ func TestDuplicateRow(t *testing.T) {
"A2": cells["A2"], "B2": cells["B2"],
}
for cell, val := range expect {
- if !assert.Equal(t, val, xlsx.GetCellValue(sheet, cell), cell) {
+ v, err := xlsx.GetCellValue(sheet, cell)
+ assert.NoError(t, err)
+ if !assert.Equal(t, val, v, cell) {
t.FailNow()
}
}
@@ -291,7 +291,7 @@ func TestDuplicateRow(t *testing.T) {
t.Run("FirstOfMultipleRows", func(t *testing.T) {
xlsx := newFileWithDefaults()
- xlsx.DuplicateRow(sheet, 1)
+ assert.NoError(t, xlsx.DuplicateRow(sheet, 1))
if !assert.NoError(t, xlsx.SaveAs(fmt.Sprintf(outFile, "TestDuplicateRow.FirstOfMultipleRows"))) {
t.FailNow()
@@ -303,7 +303,9 @@ func TestDuplicateRow(t *testing.T) {
"A4": cells["A3"], "B4": cells["B3"],
}
for cell, val := range expect {
- if !assert.Equal(t, val, xlsx.GetCellValue(sheet, cell), cell) {
+ v, err := xlsx.GetCellValue(sheet, cell)
+ assert.NoError(t, err)
+ if !assert.Equal(t, val, v, cell) {
t.FailNow()
}
}
@@ -312,26 +314,35 @@ func TestDuplicateRow(t *testing.T) {
t.Run("ZeroWithNoRows", func(t *testing.T) {
xlsx := NewFile()
- assert.Panics(t, func() {
- xlsx.DuplicateRow(sheet, 0)
- })
+ assert.EqualError(t, xlsx.DuplicateRow(sheet, 0), "invalid row number 0")
if !assert.NoError(t, xlsx.SaveAs(fmt.Sprintf(outFile, "TestDuplicateRow.ZeroWithNoRows"))) {
t.FailNow()
}
- assert.Equal(t, "", xlsx.GetCellValue(sheet, "A1"))
- assert.Equal(t, "", xlsx.GetCellValue(sheet, "B1"))
- assert.Equal(t, "", xlsx.GetCellValue(sheet, "A2"))
- assert.Equal(t, "", xlsx.GetCellValue(sheet, "B2"))
-
+ val, err := xlsx.GetCellValue(sheet, "A1")
+ assert.NoError(t, err)
+ assert.Equal(t, "", val)
+ val, err = xlsx.GetCellValue(sheet, "B1")
+ assert.NoError(t, err)
+ assert.Equal(t, "", val)
+ val, err = xlsx.GetCellValue(sheet, "A2")
+ assert.NoError(t, err)
+ assert.Equal(t, "", val)
+ val, err = xlsx.GetCellValue(sheet, "B2")
+ assert.NoError(t, err)
+ assert.Equal(t, "", val)
+
+ assert.NoError(t, err)
expect := map[string]string{
"A1": "", "B1": "",
"A2": "", "B2": "",
}
for cell, val := range expect {
- if !assert.Equal(t, val, xlsx.GetCellValue(sheet, cell), cell) {
+ v, err := xlsx.GetCellValue(sheet, cell)
+ assert.NoError(t, err)
+ if !assert.Equal(t, val, v, cell) {
t.FailNow()
}
}
@@ -340,7 +351,7 @@ func TestDuplicateRow(t *testing.T) {
t.Run("MiddleRowOfEmptyFile", func(t *testing.T) {
xlsx := NewFile()
- xlsx.DuplicateRow(sheet, 99)
+ assert.NoError(t, xlsx.DuplicateRow(sheet, 99))
if !assert.NoError(t, xlsx.SaveAs(fmt.Sprintf(outFile, "TestDuplicateRow.MiddleRowOfEmptyFile"))) {
t.FailNow()
@@ -351,7 +362,9 @@ func TestDuplicateRow(t *testing.T) {
"A100": "",
}
for cell, val := range expect {
- if !assert.Equal(t, val, xlsx.GetCellValue(sheet, cell), cell) {
+ v, err := xlsx.GetCellValue(sheet, cell)
+ assert.NoError(t, err)
+ if !assert.Equal(t, val, v, cell) {
t.FailNow()
}
}
@@ -360,7 +373,7 @@ func TestDuplicateRow(t *testing.T) {
t.Run("WithLargeOffsetToMiddleOfData", func(t *testing.T) {
xlsx := newFileWithDefaults()
- xlsx.DuplicateRowTo(sheet, 1, 3)
+ assert.NoError(t, xlsx.DuplicateRowTo(sheet, 1, 3))
if !assert.NoError(t, xlsx.SaveAs(fmt.Sprintf(outFile, "TestDuplicateRow.WithLargeOffsetToMiddleOfData"))) {
t.FailNow()
@@ -372,7 +385,9 @@ func TestDuplicateRow(t *testing.T) {
"A4": cells["A3"], "B4": cells["B3"],
}
for cell, val := range expect {
- if !assert.Equal(t, val, xlsx.GetCellValue(sheet, cell), cell) {
+ v, err := xlsx.GetCellValue(sheet, cell)
+ assert.NoError(t, err)
+ if !assert.Equal(t, val, v, cell) {
t.FailNow()
}
}
@@ -381,7 +396,7 @@ func TestDuplicateRow(t *testing.T) {
t.Run("WithLargeOffsetToEmptyRows", func(t *testing.T) {
xlsx := newFileWithDefaults()
- xlsx.DuplicateRowTo(sheet, 1, 7)
+ assert.NoError(t, xlsx.DuplicateRowTo(sheet, 1, 7))
if !assert.NoError(t, xlsx.SaveAs(fmt.Sprintf(outFile, "TestDuplicateRow.WithLargeOffsetToEmptyRows"))) {
t.FailNow()
@@ -393,7 +408,9 @@ func TestDuplicateRow(t *testing.T) {
"A7": cells["A1"], "B7": cells["B1"],
}
for cell, val := range expect {
- if !assert.Equal(t, val, xlsx.GetCellValue(sheet, cell), cell) {
+ v, err := xlsx.GetCellValue(sheet, cell)
+ assert.NoError(t, err)
+ if !assert.Equal(t, val, v, cell) {
t.FailNow()
}
}
@@ -402,7 +419,7 @@ func TestDuplicateRow(t *testing.T) {
t.Run("InsertBefore", func(t *testing.T) {
xlsx := newFileWithDefaults()
- xlsx.DuplicateRowTo(sheet, 2, 1)
+ assert.NoError(t, xlsx.DuplicateRowTo(sheet, 2, 1))
if !assert.NoError(t, xlsx.SaveAs(fmt.Sprintf(outFile, "TestDuplicateRow.InsertBefore"))) {
t.FailNow()
@@ -415,7 +432,9 @@ func TestDuplicateRow(t *testing.T) {
"A4": cells["A3"], "B4": cells["B3"],
}
for cell, val := range expect {
- if !assert.Equal(t, val, xlsx.GetCellValue(sheet, cell), cell) {
+ v, err := xlsx.GetCellValue(sheet, cell)
+ assert.NoError(t, err)
+ if !assert.Equal(t, val, v, cell) {
t.FailNow()
}
}
@@ -424,7 +443,7 @@ func TestDuplicateRow(t *testing.T) {
t.Run("InsertBeforeWithLargeOffset", func(t *testing.T) {
xlsx := newFileWithDefaults()
- xlsx.DuplicateRowTo(sheet, 3, 1)
+ assert.NoError(t, xlsx.DuplicateRowTo(sheet, 3, 1))
if !assert.NoError(t, xlsx.SaveAs(fmt.Sprintf(outFile, "TestDuplicateRow.InsertBeforeWithLargeOffset"))) {
t.FailNow()
@@ -437,7 +456,9 @@ func TestDuplicateRow(t *testing.T) {
"A4": cells["A3"], "B4": cells["B3"],
}
for cell, val := range expect {
- if !assert.Equal(t, val, xlsx.GetCellValue(sheet, cell)) {
+ v, err := xlsx.GetCellValue(sheet, cell)
+ assert.NoError(t, err)
+ if !assert.Equal(t, val, v) {
t.FailNow()
}
}
@@ -467,12 +488,12 @@ func TestDuplicateRowInvalidRownum(t *testing.T) {
xlsx.SetCellStr(sheet, col, val)
}
- assert.Panics(t, func() {
- xlsx.DuplicateRow(sheet, row)
- })
+ assert.EqualError(t, xlsx.DuplicateRow(sheet, row), fmt.Sprintf("invalid row number %d", row))
for col, val := range cells {
- if !assert.Equal(t, val, xlsx.GetCellValue(sheet, col)) {
+ v, err := xlsx.GetCellValue(sheet, col)
+ assert.NoError(t, err)
+ if !assert.Equal(t, val, v) {
t.FailNow()
}
}
@@ -489,12 +510,12 @@ func TestDuplicateRowInvalidRownum(t *testing.T) {
xlsx.SetCellStr(sheet, col, val)
}
- assert.Panics(t, func() {
- xlsx.DuplicateRowTo(sheet, row1, row2)
- })
+ assert.EqualError(t, xlsx.DuplicateRowTo(sheet, row1, row2), fmt.Sprintf("invalid row number %d", row1))
for col, val := range cells {
- if !assert.Equal(t, val, xlsx.GetCellValue(sheet, col)) {
+ v, err := xlsx.GetCellValue(sheet, col)
+ assert.NoError(t, err)
+ if !assert.Equal(t, val, v) {
t.FailNow()
}
}