8 "github.com/stretchr/testify/assert"
12 Date time.Time `json:"date"`
15 func TestJSONTimeParse(t *testing.T) {
22 "2017-03-31T16:45:15Z",
23 time.Date(2017, 3, 31, 16, 45, 15, 0, time.UTC),
24 "2017-03-31T16:45:15.000Z",
27 "2017-03-31T16:45:15.972Z",
28 time.Date(2017, 3, 31, 16, 45, 15, 972000000, time.UTC),
29 "2017-03-31T16:45:15.972Z",
32 "2017-03-31T16:45:15.972167Z",
33 time.Date(2017, 3, 31, 16, 45, 15, 972167000, time.UTC),
34 "2017-03-31T16:45:15.972Z",
38 for _, tc := range cases {
41 data := []byte(fmt.Sprintf(`{"date":"%s"}`, tc.input))
42 ReadJSONPtr(&parsed, data, &err)
43 if assert.Nil(t, err, "%s: %+v", tc.input, err) {
44 assert.Equal(t, tc.expected, parsed.Date)
45 out := JSONBytes(parsed)
46 assert.Equal(t, fmt.Sprintf(`{"date":"%s"}`, tc.encoded), string(out))