summaryrefslogtreecommitdiff
path: root/stream_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'stream_test.go')
-rw-r--r--stream_test.go66
1 files changed, 66 insertions, 0 deletions
diff --git a/stream_test.go b/stream_test.go
new file mode 100644
index 0000000..97c55a7
--- /dev/null
+++ b/stream_test.go
@@ -0,0 +1,66 @@
+package excelize
+
+import (
+ "math/rand"
+ "path/filepath"
+ "strings"
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func TestStreamWriter(t *testing.T) {
+ file := NewFile()
+ streamWriter, err := file.NewStreamWriter("Sheet1")
+ assert.NoError(t, err)
+
+ // Test max characters in a cell.
+ row := make([]interface{}, 1)
+ row[0] = strings.Repeat("c", 32769)
+ assert.NoError(t, streamWriter.SetRow("A1", &row))
+
+ // Test leading and ending space(s) character characters in a cell.
+ row = make([]interface{}, 1)
+ row[0] = " characters"
+ assert.NoError(t, streamWriter.SetRow("A2", &row))
+
+ row = make([]interface{}, 1)
+ row[0] = []byte("Word")
+ assert.NoError(t, streamWriter.SetRow("A3", &row))
+
+ for rowID := 10; rowID <= 51200; rowID++ {
+ row := make([]interface{}, 50)
+ for colID := 0; colID < 50; colID++ {
+ row[colID] = rand.Intn(640000)
+ }
+ cell, _ := CoordinatesToCellName(1, rowID)
+ assert.NoError(t, streamWriter.SetRow(cell, &row))
+ }
+
+ err = streamWriter.Flush()
+ assert.NoError(t, err)
+ // Save xlsx file by the given path.
+ assert.NoError(t, file.SaveAs(filepath.Join("test", "TestStreamWriter.xlsx")))
+
+ // Test error exceptions
+ streamWriter, err = file.NewStreamWriter("SheetN")
+ assert.EqualError(t, err, "sheet SheetN is not exist")
+}
+
+func TestFlush(t *testing.T) {
+ // Test error exceptions
+ file := NewFile()
+ streamWriter, err := file.NewStreamWriter("Sheet1")
+ assert.NoError(t, err)
+ streamWriter.Sheet = "SheetN"
+ assert.EqualError(t, streamWriter.Flush(), "sheet SheetN is not exist")
+}
+
+func TestSetRow(t *testing.T) {
+ // Test error exceptions
+ file := NewFile()
+ streamWriter, err := file.NewStreamWriter("Sheet1")
+ assert.NoError(t, err)
+ assert.EqualError(t, streamWriter.SetRow("A", &[]interface{}{}), `cannot convert cell "A" to coordinates: invalid cell name "A"`)
+ assert.EqualError(t, streamWriter.SetRow("A1", []interface{}{}), `pointer to slice expected`)
+}