@@ -6,11 +6,28 @@ import (
66 "github.com/stretchr/testify/assert"
77)
88
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+
926func TestPKCS7UnPadding (t * testing.T ) {
1027 type args struct {
1128 src []byte
1229 }
13- tests := []struct {
30+ testCases := []struct {
1431 name string
1532 args args
1633 want []byte
@@ -35,46 +52,57 @@ func TestPKCS7UnPadding(t *testing.T) {
3552 wantErr : ErrUnPadding ,
3653 },
3754 }
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 )
4676}
4777
4878func TestPadding (t * testing.T ) {
49- blockSize := 16
5079 tests := []struct {
5180 name string
5281 padding string
5382 src []byte
5483 wantLen int
5584 }{
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 },
5988 }
6089 for _ , tt := range tests {
6190 t .Run (tt .name , func (t * testing.T ) {
62- got := Padding (tt .padding , tt .src , blockSize )
91+ got := Padding (tt .padding , tt .src , TestBlockSize )
6392 assert .Equal (t , tt .wantLen , len (got ))
6493 })
6594 }
6695}
6796
6897func TestUnPadding (t * testing.T ) {
69- blockSize := 16
7098 padding := PKCS7_PADDING
7199 tests := []struct {
72100 name string
73101 src []byte
74102 want []byte
75103 wantErr bool
76104 }{
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 },
78106 {name : "empty src" , src : []byte {}, want : []byte {}, wantErr : true },
79107 }
80108 for _ , tt := range tests {
@@ -91,25 +119,23 @@ func TestUnPadding(t *testing.T) {
91119}
92120
93121func TestPKCS5Padding (t * testing.T ) {
94- blockSize := 16
95122 tests := []struct {
96123 name string
97124 src []byte
98125 wantLen int
99126 }{
100- {name : "test PKCS5" , src : []byte ("test" ), wantLen : 16 },
127+ {name : "test PKCS5" , src : []byte ("test" ), wantLen : TestBlockSize },
101128 }
102129 for _ , tt := range tests {
103130 t .Run (tt .name , func (t * testing.T ) {
104- got := PKCS5Padding (tt .src , blockSize )
131+ got := PKCS5Padding (tt .src , TestBlockSize )
105132 assert .Equal (t , tt .wantLen , len (got ))
106133 })
107134 }
108135}
109136
110137func TestPKCS5Unpadding (t * testing.T ) {
111- blockSize := 16
112- padded := PKCS5Padding ([]byte ("test" ), blockSize )
138+ padded := PKCS5Padding ([]byte ("test" ), TestBlockSize )
113139 tests := []struct {
114140 name string
115141 src []byte
@@ -132,47 +158,44 @@ func TestPKCS5Unpadding(t *testing.T) {
132158}
133159
134160func TestPKCS7Padding (t * testing.T ) {
135- blockSize := 16
136161 tests := []struct {
137162 name string
138163 src []byte
139164 wantLen int
140165 }{
141- {name : "test PKCS7" , src : []byte ("test" ), wantLen : 16 },
166+ {name : "test PKCS7" , src : []byte ("test" ), wantLen : TestBlockSize },
142167 }
143168 for _ , tt := range tests {
144169 t .Run (tt .name , func (t * testing.T ) {
145- got := PKCS7Padding (tt .src , blockSize )
170+ got := PKCS7Padding (tt .src , TestBlockSize )
146171 assert .Equal (t , tt .wantLen , len (got ))
147172 })
148173 }
149174}
150175
151176func TestZerosPadding (t * testing.T ) {
152- blockSize := 16
153177 tests := []struct {
154178 name string
155179 src []byte
156180 wantLen int
157181 }{
158- {name : "test Zeros" , src : []byte ("test" ), wantLen : 16 },
182+ {name : "test Zeros" , src : []byte ("test" ), wantLen : TestBlockSize },
159183 }
160184 for _ , tt := range tests {
161185 t .Run (tt .name , func (t * testing.T ) {
162- got := ZerosPadding (tt .src , blockSize )
186+ got := ZerosPadding (tt .src , TestBlockSize )
163187 assert .Equal (t , tt .wantLen , len (got ))
164188 })
165189 }
166190}
167191
168192func TestZerosUnPadding (t * testing.T ) {
169- blockSize := 16
170193 tests := []struct {
171194 name string
172195 src []byte
173196 want []byte
174197 }{
175- {name : "test ZerosUnPadding" , src : ZerosPadding ([]byte ("test" ), blockSize ), want : []byte ("test" )},
198+ {name : "test ZerosUnPadding" , src : ZerosPadding ([]byte ("test" ), TestBlockSize ), want : []byte ("test" )},
176199 }
177200 for _ , tt := range tests {
178201 t .Run (tt .name , func (t * testing.T ) {
0 commit comments