1
1
package ipns
2
2
3
3
import (
4
+ "encoding/json"
4
5
"testing"
5
6
6
7
"github.com/stretchr/testify/require"
7
8
)
8
9
9
10
func 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
+
10
46
for _ , v := range [][]string {
11
47
{"RSA" , "QmRp2LvtSQtCkUWCpi92ph5MdQyRtfb9jHbkNgZzGExGuG" , "/ipns/k2k4r8kpauqq30hoj9oktej5btbgz1jeos16d3te36xd78trvak0jcor" },
12
48
{"RSA" , "/ipns/QmRp2LvtSQtCkUWCpi92ph5MdQyRtfb9jHbkNgZzGExGuG" , "/ipns/k2k4r8kpauqq30hoj9oktej5btbgz1jeos16d3te36xd78trvak0jcor" },
@@ -17,10 +53,8 @@ func TestName(t *testing.T) {
17
53
{"Secp256k1" , "16Uiu2HAmUymv6JpFwNZppdKUMxGJuHsTeicXgHGKbBasu4Ruj3K1" , "/ipns/kzwfwjn5ji4puw3jc1qw4b073j74xvq21iziuqw4rem21pr7f0l4dj8i9yb978s" },
18
54
{"Secp256k1" , "/ipns/16Uiu2HAmUymv6JpFwNZppdKUMxGJuHsTeicXgHGKbBasu4Ruj3K1" , "/ipns/kzwfwjn5ji4puw3jc1qw4b073j74xvq21iziuqw4rem21pr7f0l4dj8i9yb978s" },
19
55
} {
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 ])
25
59
}
26
60
}
0 commit comments