...
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 }
48
View as plain text