todo json

master
Bel LaPointe 2021-12-31 15:27:31 -05:00
parent 12886416b7
commit 9b3bedd6fb
1 changed files with 43 additions and 0 deletions

43
pttodo/todo_test.go Normal file
View File

@ -0,0 +1,43 @@
package pttodo
import (
"encoding/json"
"testing"
)
func TestJSONTodo(t *testing.T) {
todo := func() Todo {
return Todo{
Todo: "todo",
Detail: "detail",
TS: TS(1),
Schedule: Schedule("schedule"),
}
}
t.Run("marshal+unmarshal nonzero", func(t *testing.T) {
todo := todo()
todo.TS = 1
var todo2 Todo
if b, err := json.Marshal(todo); err != nil {
t.Fatal(err)
} else if err := json.Unmarshal(b, &todo2); err != nil {
t.Fatal(err)
} else if todo != todo2 {
t.Fatal(todo2)
}
})
t.Run("zero ts should marshal to nonzero", func(t *testing.T) {
todo := todo()
todo.TS = 0
var todo2 Todo
if b, err := json.Marshal(todo); err != nil {
t.Fatal(err)
} else if err := json.Unmarshal(b, &todo2); err != nil {
t.Fatal(err)
} else if todo.TS == todo2.TS {
t.Fatal(todo2)
}
})
}