package mite import ( "encoding/json" "testing" ) func TestUnmarshalTimeTracking(t *testing.T) { trackerOff := []byte(`{ "tracker": {} }`) off := apiTimeTrackerEntry{} err := json.Unmarshal(trackerOff, &off) if err != nil { t.Error(err) } else { if off.TimeTrackerHolder.TrackingTimeEntry != nil { t.Error("expected nil, but is not") } } trackerOn := []byte(` { "tracker": { "tracking_time_entry": { "id": 36135321, "minutes": 247, "since": "2015-10-15T17:05:04+02:00" } } }`) on := apiTimeTrackerEntry{} err = json.Unmarshal(trackerOn, &on) if err != nil { t.Error(err) } else { if on.TimeTrackerHolder.TrackingTimeEntry == nil { t.Error("expected not nil, but is not") } else { if on.TimeTrackerHolder.TrackingTimeEntry.ID != 36135321 { t.Error("bad unmarshal?") } } } trackerStart := []byte(`{ "tracker": { "tracking_time_entry": { "id": 36135322, "minutes": 0, "since": "2015-10-15T17:33:52+02:00" }, "stopped_time_entry": { "id": 36134329, "minutes": 46 } } }`) start := apiTimeTrackerEntry{} err = json.Unmarshal(trackerStart, &start) if err != nil { t.Error(err) } else { if start.TimeTrackerHolder.TrackingTimeEntry == nil { t.Error("expected not nil, but is not") } else { if start.TimeTrackerHolder.TrackingTimeEntry.ID != 36135322 { t.Error("bad unmarshal?") } } if start.TimeTrackerHolder.StoppedTimeEntry == nil { t.Error("expected not nil, but is nil") } else { if start.TimeTrackerHolder.StoppedTimeEntry.ID != 36134329 { t.Error("bad unmarshal") } } } }