MyTinyTodo2/mytinytodo/packable_test.go

63 lines
1.4 KiB
Go

package mytinytodo
import (
"fmt"
"local/mytinytodoclient/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,
ListID: "1",
TaskName: "name",
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)
}
}