Details
-
Improvement
-
Resolution: Done
-
Major - P3
-
None
-
None
-
None
Description
bson encode time.Time format data, decode is not time.Time format, but double type data.
test case:
beforeTimeVal := time.Now()
|
beforeTimeMap := map[string]interface{}{"ts": beforeTimeVal} |
before, err := Marshal(beforeTimeMap)
|
noerr(t, err)
|
|
|
afterTimeMap := map[string]interface{}{} |
err = Unmarshal(before, &afterTimeMap)
|
noerr(t, err)
|
afterTime, ok := afterTimeMap["ts"].(time.Time) |
if !ok { |
t.Errorf("after time format error. after time info:%#v", afterTimeMap) |
return |
}
|
if afterTime.UnixNano() != beforeTimeVal.UnixNano() { |
t.Errorf("after time not equal before time. befere:%#v, after:%#v", beforeTimeVal, afterTime) |
return |
}
|
test case result:
/home/reage/go_src/src/mongodb/mongo-go-driver/bson/bson_test.go:67: after time format error. after time info:map[string]interface {}{"ts":1560433311128} |
FAIL
|