2017-09-06 14:53:48 -04:00
|
|
|
// Copyright 2017 Baliance. All rights reserved.
|
|
|
|
//
|
|
|
|
// Use of this source code is governed by the terms of the Affero GNU General
|
|
|
|
// Public License version 3.0 as published by the Free Software Foundation and
|
|
|
|
// appearing in the file LICENSE included in the packaging of this file. A
|
|
|
|
// commercial license can be purchased by contacting sales@baliance.com.
|
|
|
|
|
|
|
|
package spreadsheet_test
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"baliance.com/gooxml/spreadsheet"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestRowNumIncreases(t *testing.T) {
|
|
|
|
wb := spreadsheet.New()
|
|
|
|
sheet := wb.AddSheet()
|
|
|
|
if len(sheet.Rows()) != 0 {
|
|
|
|
t.Errorf("new sheet must have zero rows, had %d", len(sheet.Rows()))
|
|
|
|
}
|
|
|
|
|
|
|
|
// add 5 rows
|
|
|
|
for i := 1; i < 5; i++ {
|
|
|
|
r := sheet.AddRow()
|
|
|
|
if r.Number() != uint32(i) {
|
|
|
|
t.Errorf("expected row number %d, got %d", i, r.Number())
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestAddNumberedRow(t *testing.T) {
|
|
|
|
wb := spreadsheet.New()
|
|
|
|
sheet := wb.AddSheet()
|
|
|
|
for i := 1; i < 5; i++ {
|
|
|
|
sheet.AddRow()
|
|
|
|
}
|
|
|
|
|
|
|
|
r10 := sheet.AddNumberedRow(10)
|
|
|
|
if r10.Number() != 10 {
|
|
|
|
t.Errorf("expected row number 10, got %d", r10.Number())
|
|
|
|
}
|
2017-09-06 16:30:52 -04:00
|
|
|
r102 := sheet.Row(10)
|
2017-09-06 14:53:48 -04:00
|
|
|
if r102.Number() != 10 {
|
|
|
|
t.Errorf("expected row number 10, got %d", r102.Number())
|
|
|
|
}
|
|
|
|
if r10.X() != r102.X() {
|
|
|
|
t.Errorf("rows should wrap the same inner element")
|
|
|
|
}
|
|
|
|
|
|
|
|
// next row should be one after the last row
|
|
|
|
r11 := sheet.AddRow()
|
|
|
|
if r11.Number() != 11 {
|
|
|
|
t.Errorf("expected row number 11, got %d", r11.Number())
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestEnsureRow(t *testing.T) {
|
|
|
|
wb := spreadsheet.New()
|
|
|
|
sheet := wb.AddSheet()
|
|
|
|
|
2017-09-06 16:30:52 -04:00
|
|
|
r101 := sheet.Row(10)
|
2017-09-06 14:53:48 -04:00
|
|
|
if r101.Number() != 10 {
|
|
|
|
t.Errorf("expected row number 10, got %d", r101.Number())
|
|
|
|
}
|
2017-09-06 16:30:52 -04:00
|
|
|
r102 := sheet.Row(10)
|
2017-09-06 14:53:48 -04:00
|
|
|
if r102.Number() != 10 {
|
|
|
|
t.Errorf("expected row number 10, got %d", r102.Number())
|
|
|
|
}
|
|
|
|
if r101.X() != r102.X() {
|
|
|
|
t.Errorf("rows should wrap the same inner element")
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestRowNumberValidation(t *testing.T) {
|
|
|
|
wb := spreadsheet.New()
|
|
|
|
sheet := wb.AddSheet()
|
|
|
|
sheet.AddNumberedRow(2)
|
|
|
|
sheet.AddNumberedRow(2)
|
|
|
|
if err := sheet.Validate(); err == nil {
|
|
|
|
t.Errorf("expected validation error with identically numbered rows")
|
|
|
|
}
|
|
|
|
}
|