OSDN Git Service

Wallet store test (#312)
[bytom/vapor.git] / vendor / github.com / bytom / crypto / ed25519 / chainkd / serialize_test.go
1 package chainkd
2
3 import (
4         "bytes"
5         "encoding/hex"
6         "encoding/json"
7         "reflect"
8         "testing"
9 )
10
11 func TestMarshalingFuncs(t *testing.T) {
12         xprv, err := NewXPrv(nil)
13         if err != nil {
14                 t.Fatal(err)
15         }
16
17         want := make([]byte, hex.EncodedLen(len(xprv.Bytes())))
18         hex.Encode(want, xprv.Bytes())
19
20         got, err := json.Marshal(xprv)
21         if err != nil {
22                 t.Fatal(err)
23         }
24         // First and last bytes are "
25         if !reflect.DeepEqual(want, got[1:len(got)-1]) {
26                 t.Errorf("marshaling error: want = %+v, got = %+v", want, got)
27         }
28
29         secXprv := new(XPrv)
30         err = json.Unmarshal(got, &secXprv)
31         if err != nil {
32                 t.Fatal(err)
33         }
34         if !bytes.Equal(xprv[:], secXprv[:]) {
35                 t.Errorf("unmarshaling error: want = %+v, got = %+v", xprv, secXprv)
36         }
37 }