1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
package unmarshalmerge
import (
"code.google.com/p/gogoprotobuf/proto"
math_rand "math/rand"
"testing"
"time"
)
func TestUnmarshalMerge(t *testing.T) {
popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano()))
p := NewPopulatedBig(popr, true)
if p.GetSub() == nil {
p.Sub = &Sub{SubNumber: proto.Int64(12345)}
}
data, err := proto.Marshal(p)
if err != nil {
panic(err)
}
s := &Sub{}
b := &Big{
Sub: s,
}
err = proto.UnmarshalMerge(data, b)
if err != nil {
panic(err)
}
if s.GetSubNumber() != p.GetSub().GetSubNumber() {
t.Fatalf("should have unmarshaled subnumber into sub")
}
}
func TestUnsafeUnmarshalMerge(t *testing.T) {
popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano()))
p := NewPopulatedBigUnsafe(popr, true)
if p.GetSub() == nil {
p.Sub = &Sub{SubNumber: proto.Int64(12345)}
}
data, err := proto.Marshal(p)
if err != nil {
panic(err)
}
s := &Sub{}
b := &BigUnsafe{
Sub: s,
}
err = proto.UnmarshalMerge(data, b)
if err != nil {
panic(err)
}
if s.GetSubNumber() != p.GetSub().GetSubNumber() {
t.Fatalf("should have unmarshaled subnumber into sub")
}
}
|