| package extra |
| |
| import ( |
| "github.com/json-iterator/go" |
| "github.com/stretchr/testify/require" |
| "testing" |
| "time" |
| ) |
| |
| func Test_time_as_int64(t *testing.T) { |
| should := require.New(t) |
| RegisterTimeAsInt64Codec(time.Nanosecond) |
| output, err := jsoniter.Marshal(time.Unix(1497952257, 1002)) |
| should.Nil(err) |
| should.Equal("1497952257000001002", string(output)) |
| var val time.Time |
| should.Nil(jsoniter.Unmarshal(output, &val)) |
| should.Equal(int64(1497952257000001002), val.UnixNano()) |
| } |
| |
| func Test_time_as_int64_keep_microsecond(t *testing.T) { |
| t.Skip("conflict") |
| should := require.New(t) |
| RegisterTimeAsInt64Codec(time.Microsecond) |
| output, err := jsoniter.Marshal(time.Unix(1, 1002)) |
| should.Nil(err) |
| should.Equal("1000001", string(output)) |
| var val time.Time |
| should.Nil(jsoniter.Unmarshal(output, &val)) |
| should.Equal(int64(1000001000), val.UnixNano()) |
| } |