github.com/gogo/protobuf@v1.3.2/test/int64support/object_js_test.go (about) 1 package int64support 2 3 import ( 4 "encoding/json" 5 "testing" 6 ) 7 8 func TestMarshaler(t *testing.T) { 9 n := int64(1) 10 b, err := json.Marshal(&Object{OptionalNumber: &n}) 11 if err != nil { 12 t.Fatal(err) 13 } 14 const expected = "{\"optional_number\":1}" 15 if string(b) != expected { 16 t.Fatalf("expected '%s' instead of '%s'", expected, string(b)) 17 } 18 19 b, err = json.Marshal(new(Object)) 20 if err != nil { 21 t.Fatal(err) 22 } 23 const expected2 = "{}" 24 if string(b) != expected2 { 25 t.Fatalf("expected '%s' instead of '%s'", expected2, string(b)) 26 } 27 } 28 29 func TestUnmarshaler(t *testing.T) { 30 o := new(Object) 31 err := json.Unmarshal(([]byte)("{\"optional_number\": 1}"), o) 32 if err != nil { 33 t.Fatal(err) 34 } 35 if n := o.GetOptionalNumber(); n != 1 { 36 t.Fatalf("expected 1 instead of %d", n) 37 } 38 39 o = new(Object) 40 err = json.Unmarshal(([]byte)("{}"), o) 41 if err != nil { 42 t.Fatal(err) 43 } 44 if o.OptionalNumber != nil { 45 t.Fatalf("expected nil OptionalNumber instead of %d", *o.OptionalNumber) 46 } 47 }