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) } }