func TestJSONPbUnmarshalFields(t *testing.T) { var m runtime.JSONPb for _, fixt := range fieldFixtures { if fixt.skipUnmarshal { continue } dest := reflect.New(reflect.TypeOf(fixt.data)) if err := m.Unmarshal([]byte(fixt.json), dest.Interface()); err != nil { t.Errorf("m.Unmarshal(%q, %T) failed with %v; want success", fixt.json, dest.Interface(), err) } if got, want := dest.Elem().Interface(), fixt.data; !reflect.DeepEqual(got, want) { t.Errorf("dest = %#v; want %#v; input = %v", got, want, fixt.json) } } }
func TestJSONPbUnmarshal(t *testing.T) { var ( m runtime.JSONPb got examplepb.ABitOfEverything ) for _, data := range []string{ `{ "uuid": "6EC2446F-7E89-4127-B3E6-5C05E6BECBA7", "nested": [ {"name": "foo", "amount": 12345} ], "uint64Value": 18446744073709551615, "enumValue": "ONE", "oneofString": "bar", "mapValue": { "a": 1, "b": 0 } }`, `{ "uuid": "6EC2446F-7E89-4127-B3E6-5C05E6BECBA7", "nested": [ {"name": "foo", "amount": 12345} ], "uint64Value": "18446744073709551615", "enumValue": "ONE", "oneofString": "bar", "mapValue": { "a": 1, "b": 0 } }`, `{ "uuid": "6EC2446F-7E89-4127-B3E6-5C05E6BECBA7", "nested": [ {"name": "foo", "amount": 12345} ], "uint64Value": 18446744073709551615, "enumValue": 1, "oneofString": "bar", "mapValue": { "a": 1, "b": 0 } }`, } { if err := m.Unmarshal([]byte(data), &got); err != nil { t.Errorf("m.Unmarshal(%q, &got) failed with %v; want success", data, err) } want := examplepb.ABitOfEverything{ Uuid: "6EC2446F-7E89-4127-B3E6-5C05E6BECBA7", Nested: []*examplepb.ABitOfEverything_Nested{ { Name: "foo", Amount: 12345, }, }, Uint64Value: 0xFFFFFFFFFFFFFFFF, EnumValue: examplepb.NumericEnum_ONE, OneofValue: &examplepb.ABitOfEverything_OneofString{ OneofString: "bar", }, MapValue: map[string]examplepb.NumericEnum{ "a": examplepb.NumericEnum_ONE, "b": examplepb.NumericEnum_ZERO, }, } if !reflect.DeepEqual(got, want) { t.Errorf("got = %v; want = %v", &got, &want) } } }