Skip to content

Commit

Permalink
GODRIVER-1919 Add object id decoder awareness of string hex
Browse files Browse the repository at this point in the history
  • Loading branch information
glossd committed Mar 14, 2021
1 parent 0af4510 commit bddde89
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 0 deletions.
3 changes: 3 additions & 0 deletions bson/bsoncodec/default_value_decoders.go
Expand Up @@ -740,6 +740,9 @@ func (dvd DefaultValueDecoders) objectIDDecodeType(dc DecodeContext, vr bsonrw.V
if err != nil {
return emptyValue, err
}
if oid, err = primitive.ObjectIDFromHex(str); err == nil {
break
}
if len(str) != 12 {
return emptyValue, fmt.Errorf("an ObjectID string must be exactly 12 bytes long (got %v)", len(str))
}
Expand Down
11 changes: 11 additions & 0 deletions bson/bsoncodec/default_value_decoders_test.go
Expand Up @@ -1118,6 +1118,17 @@ func TestDefaultValueDecoders(t *testing.T) {
bsonrwtest.ReadString,
nil,
},
{
"success/string-hex",
primitive.ObjectID{0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x61, 0x62},
nil,
&bsonrwtest.ValueReaderWriter{
BSONType: bsontype.String,
Return: "303132333435363738396162",
},
bsonrwtest.ReadString,
nil,
},
{
"decode null",
primitive.ObjectID{},
Expand Down

0 comments on commit bddde89

Please sign in to comment.