| package jsonpb_gogo |
| |
| import ( |
| "testing" |
| |
| "github.com/gogo/protobuf/jsonpb" |
| ) |
| |
| // customFieldMessage implements protobuf.Message but is not a normal generated message type. |
| type customFieldMessage struct { |
| someField string //this is not a proto field |
| } |
| |
| func (m *customFieldMessage) Reset() { |
| m.someField = "hello" |
| } |
| |
| func (m *customFieldMessage) String() string { |
| return m.someField |
| } |
| |
| func (m *customFieldMessage) ProtoMessage() { |
| } |
| |
| func TestUnmarshalWithJSONPBUnmarshaler(t *testing.T) { |
| rawJson := `{}` |
| marshaler := &jsonpb.Marshaler{} |
| msg := &customFieldMessage{someField: "Ignore me"} |
| str, err := marshaler.MarshalToString(msg) |
| if err != nil { |
| t.Errorf("an unexpected error occurred when marshaling message: %v", err) |
| } |
| if str != rawJson { |
| t.Errorf("marshaled JSON was incorrect: got %s, wanted %s", str, rawJson) |
| } |
| } |