-
Notifications
You must be signed in to change notification settings - Fork 0
/
string_test.go
72 lines (66 loc) · 1.32 KB
/
string_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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
package asn1
import (
"reflect"
"testing"
"github.com/stretchr/testify/assert"
)
func TestEncodeString(t *testing.T) {
tests := []struct {
name string
expected []byte
value interface{}
errExpected bool
}{
{
name: "Test encode string",
expected: []byte{0x66, 0x6f, 0x6f, 0x62, 0x61, 0x72},
value: "foobar",
errExpected: false,
},
{
name: "Test encode string error",
expected: []byte{},
value: 1582,
errExpected: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
b, err := encodeString(reflect.ValueOf(tt.value))
if tt.errExpected {
assert.Error(t, err)
} else {
assert.Equal(t, tt.expected, b)
}
})
}
}
func TestIsValidPrintableString(t *testing.T) {
tests := []struct {
name string
expected bool
value string
}{
{
name: "Test encode proper printable string",
expected: true,
value: "print('Woah')",
},
{
name: "Test encode bad printable string",
expected: false,
value: "nuh uh uh!",
},
{
name: "Test encode bad printable string",
expected: false,
value: "#asn1",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
ok := isValidPrintableString(tt.value)
assert.Equal(t, tt.expected, ok)
})
}
}