stream_test.go 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package excelize
  2. import (
  3. "math/rand"
  4. "path/filepath"
  5. "strings"
  6. "testing"
  7. "github.com/stretchr/testify/assert"
  8. )
  9. func TestStreamWriter(t *testing.T) {
  10. file := NewFile()
  11. streamWriter, err := file.NewStreamWriter("Sheet1")
  12. assert.NoError(t, err)
  13. // Test max characters in a cell.
  14. row := make([]interface{}, 1)
  15. row[0] = strings.Repeat("c", 32769)
  16. assert.NoError(t, streamWriter.SetRow("A1", &row))
  17. // Test leading and ending space(s) character characters in a cell.
  18. row = make([]interface{}, 1)
  19. row[0] = " characters"
  20. assert.NoError(t, streamWriter.SetRow("A2", &row))
  21. row = make([]interface{}, 1)
  22. row[0] = []byte("Word")
  23. assert.NoError(t, streamWriter.SetRow("A3", &row))
  24. for rowID := 10; rowID <= 51200; rowID++ {
  25. row := make([]interface{}, 50)
  26. for colID := 0; colID < 50; colID++ {
  27. row[colID] = rand.Intn(640000)
  28. }
  29. cell, _ := CoordinatesToCellName(1, rowID)
  30. assert.NoError(t, streamWriter.SetRow(cell, &row))
  31. }
  32. err = streamWriter.Flush()
  33. assert.NoError(t, err)
  34. // Save xlsx file by the given path.
  35. assert.NoError(t, file.SaveAs(filepath.Join("test", "TestStreamWriter.xlsx")))
  36. // Test error exceptions
  37. streamWriter, err = file.NewStreamWriter("SheetN")
  38. assert.EqualError(t, err, "sheet SheetN is not exist")
  39. }
  40. func TestFlush(t *testing.T) {
  41. // Test error exceptions
  42. file := NewFile()
  43. streamWriter, err := file.NewStreamWriter("Sheet1")
  44. assert.NoError(t, err)
  45. streamWriter.Sheet = "SheetN"
  46. assert.EqualError(t, streamWriter.Flush(), "sheet SheetN is not exist")
  47. }
  48. func TestSetRow(t *testing.T) {
  49. // Test error exceptions
  50. file := NewFile()
  51. streamWriter, err := file.NewStreamWriter("Sheet1")
  52. assert.NoError(t, err)
  53. assert.EqualError(t, streamWriter.SetRow("A", &[]interface{}{}), `cannot convert cell "A" to coordinates: invalid cell name "A"`)
  54. assert.EqualError(t, streamWriter.SetRow("A1", []interface{}{}), `pointer to slice expected`)
  55. }