-
Notifications
You must be signed in to change notification settings - Fork 0
/
encode_test.go
46 lines (37 loc) · 925 Bytes
/
encode_test.go
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
package bencode
import "testing"
func TestEncodeNumeric(t *testing.T) {
input := -42
expected := "i-42e"
encoded, _ := Encode(input)
if string(encoded) != expected {
t.Fatalf("%s != %s", encoded, expected)
}
}
func TestEncodeString(t *testing.T) {
input := "spam"
expected := "4:spam"
encoded, _ := Encode(input)
if string(encoded) != expected {
t.Fatalf("%s != %s", encoded, expected)
}
}
func TestEncodeList(t *testing.T) {
input := []interface{}{"spam", 42}
expected := "l4:spami42ee"
encoded, _ := Encode(input)
if string(encoded) != expected {
t.Fatalf("%s != %s", encoded, expected)
}
}
func TestEncodeDirectory(t *testing.T) {
input := map[string]interface{}{
"foo": 42,
"bar": "spam",
}
expected := "d3:bar4:spam3:fooi42ee"
encoded, _ := Encode(input)
if string(encoded) != expected {
t.Fatalf("%s != %s", encoded, expected)
}
}