63 lines
1.5 KiB
Go
63 lines
1.5 KiB
Go
package mytinytodo
|
|
|
|
import (
|
|
"fmt"
|
|
"local/mytinytodo2/mytinytodo/remote"
|
|
"testing"
|
|
)
|
|
|
|
func TestPackableStringArray(t *testing.T) {
|
|
cases := [][]string{
|
|
nil,
|
|
[]string{},
|
|
[]string{"a"},
|
|
[]string{"a", "b"},
|
|
}
|
|
|
|
for i, c := range cases {
|
|
sa := NewStringArray(c...)
|
|
if fmt.Sprintf("%v", sa.StringArray()) != fmt.Sprintf("%v", c) {
|
|
t.Errorf("[%d]: NewStringArray() != input: got %v, want %v", i, sa, c)
|
|
}
|
|
encoded, err := sa.Encode()
|
|
if err != nil {
|
|
t.Errorf("[%d]: sa.Encode() error: %v", i, err)
|
|
}
|
|
sa2 := NewStringArray()
|
|
if err := sa2.Decode(encoded); err != nil {
|
|
t.Errorf("[%d]: sa2.Decode() error: %v", i, err)
|
|
}
|
|
if fmt.Sprintf("%v", sa2.StringArray()) != fmt.Sprintf("%v", c) {
|
|
t.Errorf("[%d]: Decoded != input: got %v, want %v", i, sa2, c)
|
|
}
|
|
t.Logf("[%d] sa: %v vs %v", i, *sa, *sa2)
|
|
}
|
|
}
|
|
|
|
func TestPackableQueuedOp(t *testing.T) {
|
|
cases := []*QueuedOp{
|
|
&QueuedOp{
|
|
Op: remote.NEW,
|
|
List: remote.List{ID: "1"},
|
|
Task: remote.Task{Title: "title"},
|
|
TaskTags: []string{"some", "tags"},
|
|
},
|
|
&QueuedOp{},
|
|
}
|
|
|
|
for i, c := range cases {
|
|
encoded, err := c.Encode()
|
|
if err != nil {
|
|
t.Errorf("[%d]: qop.Encode() error: %v", i, err)
|
|
}
|
|
qop := &QueuedOp{}
|
|
if err := qop.Decode(encoded); err != nil {
|
|
t.Errorf("[%d]: qop.Decode() error: %v", i, err)
|
|
}
|
|
if fmt.Sprintf("%v", *qop) != fmt.Sprintf("%v", *c) {
|
|
t.Errorf("[%d]: Decoded != input: got %v, want %v", i, *qop, *c)
|
|
}
|
|
t.Logf("[%d] qop: %v vs %v", i, *qop, *c)
|
|
}
|
|
}
|