summaryrefslogtreecommitdiff
path: root/rows_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'rows_test.go')
-rw-r--r--rows_test.go167
1 files changed, 151 insertions, 16 deletions
diff --git a/rows_test.go b/rows_test.go
index 6a107ad..f7d49b4 100644
--- a/rows_test.go
+++ b/rows_test.go
@@ -50,7 +50,7 @@ func TestRowsError(t *testing.T) {
t.FailNow()
}
_, err = xlsx.Rows("SheetN")
- assert.EqualError(t, err, "Sheet SheetN is not exist")
+ assert.EqualError(t, err, "sheet SheetN is not exist")
}
func TestRowHeight(t *testing.T) {
@@ -59,11 +59,11 @@ func TestRowHeight(t *testing.T) {
assert.EqualError(t, xlsx.SetRowHeight(sheet1, 0, defaultRowHeightPixels+1.0), "invalid row number 0")
- height, err := xlsx.GetRowHeight("Sheet1", 0)
+ _, err := xlsx.GetRowHeight("Sheet1", 0)
assert.EqualError(t, err, "invalid row number 0")
assert.NoError(t, xlsx.SetRowHeight(sheet1, 1, 111.0))
- height, err = xlsx.GetRowHeight(sheet1, 1)
+ height, err := xlsx.GetRowHeight(sheet1, 1)
assert.NoError(t, err)
assert.Equal(t, 111.0, height)
@@ -82,6 +82,11 @@ func TestRowHeight(t *testing.T) {
assert.NoError(t, err)
assert.Equal(t, defaultRowHeightPixels, height)
+ // Test set and get row height on not exists worksheet.
+ assert.EqualError(t, xlsx.SetRowHeight("SheetN", 1, 111.0), "sheet SheetN is not exist")
+ _, err = xlsx.GetRowHeight("SheetN", 3)
+ assert.EqualError(t, err, "sheet SheetN is not exist")
+
err = xlsx.SaveAs(filepath.Join("test", "TestRowHeight.xlsx"))
if !assert.NoError(t, err) {
t.FailNow()
@@ -95,9 +100,9 @@ func TestRowVisibility(t *testing.T) {
if !assert.NoError(t, err) {
t.FailNow()
}
-
- assert.EqualError(t, xlsx.SetRowVisible("Sheet3", 2, false), "Sheet Sheet3 is not exist")
- assert.EqualError(t, xlsx.SetRowVisible("Sheet3", 2, true), "Sheet Sheet3 is not exist")
+ xlsx.NewSheet("Sheet3")
+ assert.NoError(t, xlsx.SetRowVisible("Sheet3", 2, false))
+ assert.NoError(t, xlsx.SetRowVisible("Sheet3", 2, true))
xlsx.GetRowVisible("Sheet3", 2)
xlsx.GetRowVisible("Sheet3", 25)
assert.EqualError(t, xlsx.SetRowVisible("Sheet3", 0, true), "invalid row number 0")
@@ -213,7 +218,7 @@ func TestInsertRowInEmptyFile(t *testing.T) {
assert.NoError(t, xlsx.SaveAs(filepath.Join("test", "TestInsertRowInEmptyFile.xlsx")))
}
-func TestDuplicateRow(t *testing.T) {
+func TestDuplicateRowFromSingleRow(t *testing.T) {
const sheet = "Sheet1"
outFile := filepath.Join("test", "TestDuplicateRow.%s.xlsx")
@@ -226,15 +231,6 @@ func TestDuplicateRow(t *testing.T) {
"B3": "B3 Value",
}
- newFileWithDefaults := func() *File {
- f := NewFile()
- for cell, val := range cells {
- f.SetCellStr(sheet, cell, val)
-
- }
- return f
- }
-
t.Run("FromSingleRow", func(t *testing.T) {
xlsx := NewFile()
xlsx.SetCellStr(sheet, "A1", cells["A1"])
@@ -273,6 +269,20 @@ func TestDuplicateRow(t *testing.T) {
}
}
})
+}
+
+func TestDuplicateRowUpdateDuplicatedRows(t *testing.T) {
+ const sheet = "Sheet1"
+ outFile := filepath.Join("test", "TestDuplicateRow.%s.xlsx")
+
+ cells := map[string]string{
+ "A1": "A1 Value",
+ "A2": "A2 Value",
+ "A3": "A3 Value",
+ "B1": "B1 Value",
+ "B2": "B2 Value",
+ "B3": "B3 Value",
+ }
t.Run("UpdateDuplicatedRows", func(t *testing.T) {
xlsx := NewFile()
@@ -299,6 +309,29 @@ func TestDuplicateRow(t *testing.T) {
}
}
})
+}
+
+func TestDuplicateRowFirstOfMultipleRows(t *testing.T) {
+ const sheet = "Sheet1"
+ outFile := filepath.Join("test", "TestDuplicateRow.%s.xlsx")
+
+ cells := map[string]string{
+ "A1": "A1 Value",
+ "A2": "A2 Value",
+ "A3": "A3 Value",
+ "B1": "B1 Value",
+ "B2": "B2 Value",
+ "B3": "B3 Value",
+ }
+
+ newFileWithDefaults := func() *File {
+ f := NewFile()
+ for cell, val := range cells {
+ f.SetCellStr(sheet, cell, val)
+
+ }
+ return f
+ }
t.Run("FirstOfMultipleRows", func(t *testing.T) {
xlsx := newFileWithDefaults()
@@ -322,6 +355,11 @@ func TestDuplicateRow(t *testing.T) {
}
}
})
+}
+
+func TestDuplicateRowZeroWithNoRows(t *testing.T) {
+ const sheet = "Sheet1"
+ outFile := filepath.Join("test", "TestDuplicateRow.%s.xlsx")
t.Run("ZeroWithNoRows", func(t *testing.T) {
xlsx := NewFile()
@@ -359,6 +397,11 @@ func TestDuplicateRow(t *testing.T) {
}
}
})
+}
+
+func TestDuplicateRowMiddleRowOfEmptyFile(t *testing.T) {
+ const sheet = "Sheet1"
+ outFile := filepath.Join("test", "TestDuplicateRow.%s.xlsx")
t.Run("MiddleRowOfEmptyFile", func(t *testing.T) {
xlsx := NewFile()
@@ -381,6 +424,29 @@ func TestDuplicateRow(t *testing.T) {
}
}
})
+}
+
+func TestDuplicateRowWithLargeOffsetToMiddleOfData(t *testing.T) {
+ const sheet = "Sheet1"
+ outFile := filepath.Join("test", "TestDuplicateRow.%s.xlsx")
+
+ cells := map[string]string{
+ "A1": "A1 Value",
+ "A2": "A2 Value",
+ "A3": "A3 Value",
+ "B1": "B1 Value",
+ "B2": "B2 Value",
+ "B3": "B3 Value",
+ }
+
+ newFileWithDefaults := func() *File {
+ f := NewFile()
+ for cell, val := range cells {
+ f.SetCellStr(sheet, cell, val)
+
+ }
+ return f
+ }
t.Run("WithLargeOffsetToMiddleOfData", func(t *testing.T) {
xlsx := newFileWithDefaults()
@@ -404,6 +470,29 @@ func TestDuplicateRow(t *testing.T) {
}
}
})
+}
+
+func TestDuplicateRowWithLargeOffsetToEmptyRows(t *testing.T) {
+ const sheet = "Sheet1"
+ outFile := filepath.Join("test", "TestDuplicateRow.%s.xlsx")
+
+ cells := map[string]string{
+ "A1": "A1 Value",
+ "A2": "A2 Value",
+ "A3": "A3 Value",
+ "B1": "B1 Value",
+ "B2": "B2 Value",
+ "B3": "B3 Value",
+ }
+
+ newFileWithDefaults := func() *File {
+ f := NewFile()
+ for cell, val := range cells {
+ f.SetCellStr(sheet, cell, val)
+
+ }
+ return f
+ }
t.Run("WithLargeOffsetToEmptyRows", func(t *testing.T) {
xlsx := newFileWithDefaults()
@@ -427,6 +516,29 @@ func TestDuplicateRow(t *testing.T) {
}
}
})
+}
+
+func TestDuplicateRowInsertBefore(t *testing.T) {
+ const sheet = "Sheet1"
+ outFile := filepath.Join("test", "TestDuplicateRow.%s.xlsx")
+
+ cells := map[string]string{
+ "A1": "A1 Value",
+ "A2": "A2 Value",
+ "A3": "A3 Value",
+ "B1": "B1 Value",
+ "B2": "B2 Value",
+ "B3": "B3 Value",
+ }
+
+ newFileWithDefaults := func() *File {
+ f := NewFile()
+ for cell, val := range cells {
+ f.SetCellStr(sheet, cell, val)
+
+ }
+ return f
+ }
t.Run("InsertBefore", func(t *testing.T) {
xlsx := newFileWithDefaults()
@@ -451,6 +563,29 @@ func TestDuplicateRow(t *testing.T) {
}
}
})
+}
+
+func TestDuplicateRowInsertBeforeWithLargeOffset(t *testing.T) {
+ const sheet = "Sheet1"
+ outFile := filepath.Join("test", "TestDuplicateRow.%s.xlsx")
+
+ cells := map[string]string{
+ "A1": "A1 Value",
+ "A2": "A2 Value",
+ "A3": "A3 Value",
+ "B1": "B1 Value",
+ "B2": "B2 Value",
+ "B3": "B3 Value",
+ }
+
+ newFileWithDefaults := func() *File {
+ f := NewFile()
+ for cell, val := range cells {
+ f.SetCellStr(sheet, cell, val)
+
+ }
+ return f
+ }
t.Run("InsertBeforeWithLargeOffset", func(t *testing.T) {
xlsx := newFileWithDefaults()