From 9b3bedd6fb24096a27e368e8c9d657fe8a4f57b1 Mon Sep 17 00:00:00 2001 From: Bel LaPointe Date: Fri, 31 Dec 2021 15:27:31 -0500 Subject: [PATCH] todo json --- pttodo/todo_test.go | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 pttodo/todo_test.go diff --git a/pttodo/todo_test.go b/pttodo/todo_test.go new file mode 100644 index 0000000..6f579ba --- /dev/null +++ b/pttodo/todo_test.go @@ -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) + } + }) +}