summaryrefslogtreecommitdiff
path: root/excelize_test.go
diff options
context:
space:
mode:
authorVeniamin Albaev <albenik@gmail.com>2018-12-26 08:33:40 +0300
committerxuri <xuri.me@gmail.com>2018-12-26 13:33:40 +0800
commit7b7ca99f5d570c30f7eee92c38c5e632b7815239 (patch)
tree280ea5f79cc5875232044c81dd57bc3f344f3de1 /excelize_test.go
parent9b8baf75ad7613dba24635b4c66791e404c6b7d5 (diff)
Duplicate row (#317)
* go mod tidy applied * File.DuplicateRow() method added
Diffstat (limited to 'excelize_test.go')
-rw-r--r--excelize_test.go67
1 files changed, 67 insertions, 0 deletions
diff --git a/excelize_test.go b/excelize_test.go
index 1995058..8c19a3e 100644
--- a/excelize_test.go
+++ b/excelize_test.go
@@ -12,6 +12,8 @@ import (
"strings"
"testing"
"time"
+
+ "github.com/stretchr/testify/assert"
)
func TestOpenFile(t *testing.T) {
@@ -1029,6 +1031,71 @@ func TestInsertRow(t *testing.T) {
}
}
+func TestDuplicateRow(t *testing.T) {
+ const (
+ file = "./test/Book_DuplicateRow_%s.xlsx"
+ sheet = "Sheet1"
+ a1 = "A1"
+ b1 = "B1"
+ a2 = "A2"
+ b2 = "B2"
+ a3 = "A3"
+ b3 = "B3"
+ a4 = "A4"
+ b4 = "B4"
+ a1Value = "A1 value"
+ a2Value = "A2 value"
+ a3Value = "A3 value"
+ bnValue = "Bn value"
+ )
+ xlsx := NewFile()
+ xlsx.SetCellStr(sheet, a1, a1Value)
+ xlsx.SetCellStr(sheet, b1, bnValue)
+
+ t.Run("FromSingleRow", func(t *testing.T) {
+ xlsx.DuplicateRow(sheet, 1)
+ xlsx.DuplicateRow(sheet, 2)
+
+ if assert.NoError(t, xlsx.SaveAs(fmt.Sprintf(file, "SignleRow"))) {
+ assert.Equal(t, a1Value, xlsx.GetCellValue(sheet, a1))
+ assert.Equal(t, a1Value, xlsx.GetCellValue(sheet, a2))
+ assert.Equal(t, a1Value, xlsx.GetCellValue(sheet, a3))
+ assert.Equal(t, bnValue, xlsx.GetCellValue(sheet, b1))
+ assert.Equal(t, bnValue, xlsx.GetCellValue(sheet, b2))
+ assert.Equal(t, bnValue, xlsx.GetCellValue(sheet, b3))
+ }
+ })
+
+ t.Run("UpdateDuplicatedRows", func(t *testing.T) {
+ xlsx.SetCellStr(sheet, a2, a2Value)
+ xlsx.SetCellStr(sheet, a3, a3Value)
+
+ if assert.NoError(t, xlsx.SaveAs(fmt.Sprintf(file, "Updated"))) {
+ assert.Equal(t, a1Value, xlsx.GetCellValue(sheet, a1))
+ assert.Equal(t, a2Value, xlsx.GetCellValue(sheet, a2))
+ assert.Equal(t, a3Value, xlsx.GetCellValue(sheet, a3))
+ assert.Equal(t, bnValue, xlsx.GetCellValue(sheet, b1))
+ assert.Equal(t, bnValue, xlsx.GetCellValue(sheet, b2))
+ assert.Equal(t, bnValue, xlsx.GetCellValue(sheet, b3))
+ }
+ })
+
+ t.Run("FromFirstOfMultipleRows", func(t *testing.T) {
+ xlsx.DuplicateRow(sheet, 1)
+
+ if assert.NoError(t, xlsx.SaveAs(fmt.Sprintf(file, "FirstOfMultipleRows"))) {
+ assert.Equal(t, a1Value, xlsx.GetCellValue(sheet, a1))
+ assert.Equal(t, a1Value, xlsx.GetCellValue(sheet, a2))
+ assert.Equal(t, a2Value, xlsx.GetCellValue(sheet, a3))
+ assert.Equal(t, a3Value, xlsx.GetCellValue(sheet, a4))
+ assert.Equal(t, bnValue, xlsx.GetCellValue(sheet, b1))
+ assert.Equal(t, bnValue, xlsx.GetCellValue(sheet, b2))
+ assert.Equal(t, bnValue, xlsx.GetCellValue(sheet, b3))
+ assert.Equal(t, bnValue, xlsx.GetCellValue(sheet, b4))
+ }
+ })
+}
+
func TestSetPane(t *testing.T) {
xlsx := NewFile()
xlsx.SetPanes("Sheet1", `{"freeze":false,"split":false}`)