@@ -6,11 +6,28 @@ import (
6
6
"github.com/stretchr/testify/assert"
7
7
)
8
8
9
+ const TestBlockSize = 16
10
+
11
+ func runTestCases (t * testing.T , testCases []struct {
12
+ name string
13
+ args struct { src []byte }
14
+ want []byte
15
+ wantErr error
16
+ }, testFunc func ([]byte ) ([]byte , error )) {
17
+ for _ , tt := range testCases {
18
+ t .Run (tt .name , func (t * testing.T ) {
19
+ result , err := testFunc (tt .args .src )
20
+ assert .Equal (t , tt .wantErr , err )
21
+ assert .Equal (t , tt .want , result )
22
+ })
23
+ }
24
+ }
25
+
9
26
func TestPKCS7UnPadding (t * testing.T ) {
10
27
type args struct {
11
28
src []byte
12
29
}
13
- tests := []struct {
30
+ testCases := []struct {
14
31
name string
15
32
args args
16
33
want []byte
@@ -35,46 +52,57 @@ func TestPKCS7UnPadding(t *testing.T) {
35
52
wantErr : ErrUnPadding ,
36
53
},
37
54
}
38
- for _ , tt := range tests {
39
- t .Run (tt .name , func (t * testing.T ) {
40
- result , err := PKCS7UnPadding (tt .args .src )
41
- t .Log (string (result ))
42
- assert .Equal (t , tt .wantErr , err )
43
- assert .Equal (t , tt .want , result )
44
- })
45
- }
55
+ // Convert testCases to match the expected type of runTestCases
56
+ convertedTestCases := make ([]struct {
57
+ name string
58
+ args struct { src []byte }
59
+ want []byte
60
+ wantErr error
61
+ }, len (testCases ))
62
+ for i , tc := range testCases {
63
+ convertedTestCases [i ] = struct {
64
+ name string
65
+ args struct { src []byte }
66
+ want []byte
67
+ wantErr error
68
+ }{
69
+ name : tc .name ,
70
+ args : struct { src []byte }{src : tc .args .src },
71
+ want : tc .want ,
72
+ wantErr : tc .wantErr ,
73
+ }
74
+ }
75
+ runTestCases (t , convertedTestCases , PKCS7UnPadding )
46
76
}
47
77
48
78
func TestPadding (t * testing.T ) {
49
- blockSize := 16
50
79
tests := []struct {
51
80
name string
52
81
padding string
53
82
src []byte
54
83
wantLen int
55
84
}{
56
- {name : "PKCS5" , padding : PKCS5_PADDING , src : []byte ("test" ), wantLen : 16 },
57
- {name : "PKCS7" , padding : PKCS7_PADDING , src : []byte ("test" ), wantLen : 16 },
58
- {name : "Zeros" , padding : ZEROS_PADDING , src : []byte ("test" ), wantLen : 16 },
85
+ {name : "PKCS5" , padding : PKCS5_PADDING , src : []byte ("test" ), wantLen : TestBlockSize },
86
+ {name : "PKCS7" , padding : PKCS7_PADDING , src : []byte ("test" ), wantLen : TestBlockSize },
87
+ {name : "Zeros" , padding : ZEROS_PADDING , src : []byte ("test" ), wantLen : TestBlockSize },
59
88
}
60
89
for _ , tt := range tests {
61
90
t .Run (tt .name , func (t * testing.T ) {
62
- got := Padding (tt .padding , tt .src , blockSize )
91
+ got := Padding (tt .padding , tt .src , TestBlockSize )
63
92
assert .Equal (t , tt .wantLen , len (got ))
64
93
})
65
94
}
66
95
}
67
96
68
97
func TestUnPadding (t * testing.T ) {
69
- blockSize := 16
70
98
padding := PKCS7_PADDING
71
99
tests := []struct {
72
100
name string
73
101
src []byte
74
102
want []byte
75
103
wantErr bool
76
104
}{
77
- {name : "valid padding" , src : PKCS7Padding ([]byte ("test" ), blockSize ), want : []byte ("test" ), wantErr : false },
105
+ {name : "valid padding" , src : PKCS7Padding ([]byte ("test" ), TestBlockSize ), want : []byte ("test" ), wantErr : false },
78
106
{name : "empty src" , src : []byte {}, want : []byte {}, wantErr : true },
79
107
}
80
108
for _ , tt := range tests {
@@ -91,25 +119,23 @@ func TestUnPadding(t *testing.T) {
91
119
}
92
120
93
121
func TestPKCS5Padding (t * testing.T ) {
94
- blockSize := 16
95
122
tests := []struct {
96
123
name string
97
124
src []byte
98
125
wantLen int
99
126
}{
100
- {name : "test PKCS5" , src : []byte ("test" ), wantLen : 16 },
127
+ {name : "test PKCS5" , src : []byte ("test" ), wantLen : TestBlockSize },
101
128
}
102
129
for _ , tt := range tests {
103
130
t .Run (tt .name , func (t * testing.T ) {
104
- got := PKCS5Padding (tt .src , blockSize )
131
+ got := PKCS5Padding (tt .src , TestBlockSize )
105
132
assert .Equal (t , tt .wantLen , len (got ))
106
133
})
107
134
}
108
135
}
109
136
110
137
func TestPKCS5Unpadding (t * testing.T ) {
111
- blockSize := 16
112
- padded := PKCS5Padding ([]byte ("test" ), blockSize )
138
+ padded := PKCS5Padding ([]byte ("test" ), TestBlockSize )
113
139
tests := []struct {
114
140
name string
115
141
src []byte
@@ -132,47 +158,44 @@ func TestPKCS5Unpadding(t *testing.T) {
132
158
}
133
159
134
160
func TestPKCS7Padding (t * testing.T ) {
135
- blockSize := 16
136
161
tests := []struct {
137
162
name string
138
163
src []byte
139
164
wantLen int
140
165
}{
141
- {name : "test PKCS7" , src : []byte ("test" ), wantLen : 16 },
166
+ {name : "test PKCS7" , src : []byte ("test" ), wantLen : TestBlockSize },
142
167
}
143
168
for _ , tt := range tests {
144
169
t .Run (tt .name , func (t * testing.T ) {
145
- got := PKCS7Padding (tt .src , blockSize )
170
+ got := PKCS7Padding (tt .src , TestBlockSize )
146
171
assert .Equal (t , tt .wantLen , len (got ))
147
172
})
148
173
}
149
174
}
150
175
151
176
func TestZerosPadding (t * testing.T ) {
152
- blockSize := 16
153
177
tests := []struct {
154
178
name string
155
179
src []byte
156
180
wantLen int
157
181
}{
158
- {name : "test Zeros" , src : []byte ("test" ), wantLen : 16 },
182
+ {name : "test Zeros" , src : []byte ("test" ), wantLen : TestBlockSize },
159
183
}
160
184
for _ , tt := range tests {
161
185
t .Run (tt .name , func (t * testing.T ) {
162
- got := ZerosPadding (tt .src , blockSize )
186
+ got := ZerosPadding (tt .src , TestBlockSize )
163
187
assert .Equal (t , tt .wantLen , len (got ))
164
188
})
165
189
}
166
190
}
167
191
168
192
func TestZerosUnPadding (t * testing.T ) {
169
- blockSize := 16
170
193
tests := []struct {
171
194
name string
172
195
src []byte
173
196
want []byte
174
197
}{
175
- {name : "test ZerosUnPadding" , src : ZerosPadding ([]byte ("test" ), blockSize ), want : []byte ("test" )},
198
+ {name : "test ZerosUnPadding" , src : ZerosPadding ([]byte ("test" ), TestBlockSize ), want : []byte ("test" )},
176
199
}
177
200
for _ , tt := range tests {
178
201
t .Run (tt .name , func (t * testing.T ) {
0 commit comments