11package ipns
22
33import (
4+ "encoding/json"
45 "testing"
56
67 "github.com/stretchr/testify/require"
78)
89
910func TestName (t * testing.T ) {
11+ t .Parallel ()
12+
13+ testString := func (t * testing.T , name , input , expected string ) {
14+ t .Run ("String method: " + name , func (t * testing.T ) {
15+ t .Parallel ()
16+
17+ name , err := NameFromString (input )
18+ require .NoError (t , err )
19+ require .Equal (t , expected , name .String ())
20+ })
21+ }
22+
23+ testMarshalJSON := func (t * testing.T , name , input , expected string ) {
24+ t .Run ("Marshal JSON: " + name , func (t * testing.T ) {
25+ t .Parallel ()
26+
27+ name , err := NameFromString (input )
28+ require .NoError (t , err )
29+ raw , err := json .Marshal (name )
30+ require .NoError (t , err )
31+ require .Equal (t , expected , string (raw ))
32+ })
33+ }
34+
35+ testUnmarshalJSON := func (t * testing.T , name string , input []byte , expected string ) {
36+ t .Run ("Unmarshal JSON: " + name , func (t * testing.T ) {
37+ t .Parallel ()
38+
39+ var name Name
40+ err := json .Unmarshal (input , & name )
41+ require .NoError (t , err )
42+ require .Equal (t , expected , name .String ())
43+ })
44+ }
45+
1046 for _ , v := range [][]string {
1147 {"RSA" , "QmRp2LvtSQtCkUWCpi92ph5MdQyRtfb9jHbkNgZzGExGuG" , "/ipns/k2k4r8kpauqq30hoj9oktej5btbgz1jeos16d3te36xd78trvak0jcor" },
1248 {"RSA" , "/ipns/QmRp2LvtSQtCkUWCpi92ph5MdQyRtfb9jHbkNgZzGExGuG" , "/ipns/k2k4r8kpauqq30hoj9oktej5btbgz1jeos16d3te36xd78trvak0jcor" },
@@ -17,10 +53,8 @@ func TestName(t *testing.T) {
1753 {"Secp256k1" , "16Uiu2HAmUymv6JpFwNZppdKUMxGJuHsTeicXgHGKbBasu4Ruj3K1" , "/ipns/kzwfwjn5ji4puw3jc1qw4b073j74xvq21iziuqw4rem21pr7f0l4dj8i9yb978s" },
1854 {"Secp256k1" , "/ipns/16Uiu2HAmUymv6JpFwNZppdKUMxGJuHsTeicXgHGKbBasu4Ruj3K1" , "/ipns/kzwfwjn5ji4puw3jc1qw4b073j74xvq21iziuqw4rem21pr7f0l4dj8i9yb978s" },
1955 } {
20- t .Run (v [0 ], func (t * testing.T ) {
21- name , err := NameFromString (v [1 ])
22- require .NoError (t , err )
23- require .Equal (t , v [2 ], name .String ())
24- })
56+ testString (t , v [0 ], v [1 ], v [2 ])
57+ testMarshalJSON (t , v [0 ], v [1 ], `"` + v [2 ]+ `"` )
58+ testUnmarshalJSON (t , v [0 ], []byte (`"` + v [2 ]+ `"` ), v [2 ])
2559 }
2660}
0 commit comments