...

Source file src/github.com/gogo/protobuf/test/int64support/object_js_test.go

Documentation: github.com/gogo/protobuf/test/int64support

     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