52 lines
1.5 KiB
Go
52 lines
1.5 KiB
Go
// Copyright (C) MongoDB, Inc. 2017-present.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
// not use this file except in compliance with the License. You may obtain
|
|
// a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
package bson
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestType(t *testing.T) {
|
|
testCases := []struct {
|
|
name string
|
|
t Type
|
|
want string
|
|
}{
|
|
{"double", TypeDouble, "double"},
|
|
{"string", TypeString, "string"},
|
|
{"embedded document", TypeEmbeddedDocument, "embedded document"},
|
|
{"array", TypeArray, "array"},
|
|
{"binary", TypeBinary, "binary"},
|
|
{"undefined", TypeUndefined, "undefined"},
|
|
{"objectID", TypeObjectID, "objectID"},
|
|
{"boolean", TypeBoolean, "boolean"},
|
|
{"UTC datetime", TypeDateTime, "UTC datetime"},
|
|
{"null", TypeNull, "null"},
|
|
{"regex", TypeRegex, "regex"},
|
|
{"dbPointer", TypeDBPointer, "dbPointer"},
|
|
{"javascript", TypeJavaScript, "javascript"},
|
|
{"symbol", TypeSymbol, "symbol"},
|
|
{"code with scope", TypeCodeWithScope, "code with scope"},
|
|
{"32-bit integer", TypeInt32, "32-bit integer"},
|
|
{"timestamp", TypeTimestamp, "timestamp"},
|
|
{"64-bit integer", TypeInt64, "64-bit integer"},
|
|
{"128-bit decimal", TypeDecimal128, "128-bit decimal"},
|
|
{"max key", TypeMaxKey, "max key"},
|
|
{"min key", TypeMinKey, "min key"},
|
|
{"invalid", (0), "invalid"},
|
|
}
|
|
|
|
for _, tc := range testCases {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
got := tc.t.String()
|
|
if got != tc.want {
|
|
t.Errorf("String outputs do not match. got %s; want %s", got, tc.want)
|
|
}
|
|
})
|
|
}
|
|
}
|