MCPcopy
hub / github.com/golang/protobuf / TestGetExtensionDefaults

Function TestGetExtensionDefaults

proto/extensions_test.go:217–349  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

215}
216
217func TestGetExtensionDefaults(t *testing.T) {
218 var setFloat64 float64 = 1
219 var setFloat32 float32 = 2
220 var setInt32 int32 = 3
221 var setInt64 int64 = 4
222 var setUint32 uint32 = 5
223 var setUint64 uint64 = 6
224 var setBool = true
225 var setBool2 = false
226 var setString = "Goodnight string"
227 var setBytes = []byte("Goodnight bytes")
228 var setEnum = pb2.DefaultsMessage_TWO
229
230 type testcase struct {
231 ext *proto.ExtensionDesc // Extension we are testing.
232 want interface{} // Expected value of extension, or nil (meaning that GetExtension will fail).
233 def interface{} // Expected value of extension after ClearExtension().
234 }
235 tests := []testcase{
236 {pb2.E_NoDefaultDouble, setFloat64, nil},
237 {pb2.E_NoDefaultFloat, setFloat32, nil},
238 {pb2.E_NoDefaultInt32, setInt32, nil},
239 {pb2.E_NoDefaultInt64, setInt64, nil},
240 {pb2.E_NoDefaultUint32, setUint32, nil},
241 {pb2.E_NoDefaultUint64, setUint64, nil},
242 {pb2.E_NoDefaultSint32, setInt32, nil},
243 {pb2.E_NoDefaultSint64, setInt64, nil},
244 {pb2.E_NoDefaultFixed32, setUint32, nil},
245 {pb2.E_NoDefaultFixed64, setUint64, nil},
246 {pb2.E_NoDefaultSfixed32, setInt32, nil},
247 {pb2.E_NoDefaultSfixed64, setInt64, nil},
248 {pb2.E_NoDefaultBool, setBool, nil},
249 {pb2.E_NoDefaultBool, setBool2, nil},
250 {pb2.E_NoDefaultString, setString, nil},
251 {pb2.E_NoDefaultBytes, setBytes, nil},
252 {pb2.E_NoDefaultEnum, setEnum, nil},
253 {pb2.E_DefaultDouble, setFloat64, float64(3.1415)},
254 {pb2.E_DefaultFloat, setFloat32, float32(3.14)},
255 {pb2.E_DefaultInt32, setInt32, int32(42)},
256 {pb2.E_DefaultInt64, setInt64, int64(43)},
257 {pb2.E_DefaultUint32, setUint32, uint32(44)},
258 {pb2.E_DefaultUint64, setUint64, uint64(45)},
259 {pb2.E_DefaultSint32, setInt32, int32(46)},
260 {pb2.E_DefaultSint64, setInt64, int64(47)},
261 {pb2.E_DefaultFixed32, setUint32, uint32(48)},
262 {pb2.E_DefaultFixed64, setUint64, uint64(49)},
263 {pb2.E_DefaultSfixed32, setInt32, int32(50)},
264 {pb2.E_DefaultSfixed64, setInt64, int64(51)},
265 {pb2.E_DefaultBool, setBool, true},
266 {pb2.E_DefaultBool, setBool2, true},
267 {pb2.E_DefaultString, setString, "Hello, string,def=foo"},
268 {pb2.E_DefaultBytes, setBytes, []byte("Hello, bytes")},
269 {pb2.E_DefaultEnum, setEnum, pb2.DefaultsMessage_ONE},
270 }
271
272 checkVal := func(t *testing.T, name string, test testcase, msg *pb2.DefaultsMessage, valWant interface{}) {
273 t.Run(name, func(t *testing.T) {
274 val, err := proto.GetExtension(msg, test.ext)

Callers

nothing calls this directly

Calls 7

GetExtensionFunction · 0.92
SetExtensionFunction · 0.92
ClearExtensionFunction · 0.92
InterfaceMethod · 0.80
TypeMethod · 0.80
NameMethod · 0.65
NewMethod · 0.45

Tested by

no test coverage detected