(t *testing.T)
| 215 | } |
| 216 | |
| 217 | func 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) |
nothing calls this directly
no test coverage detected