@@ -44,6 +44,7 @@ func TestInt(t *testing.T) {
4444 IntPtrArrayArray [][]* int
4545 IntMap map [int ]int
4646 IntPtrMap map [* int ]* int
47+ NoURLValue int
4748 }
4849
4950 values := url.Values {
@@ -124,146 +125,115 @@ func TestInt(t *testing.T) {
124125
125126 v , ok := test .IntMap [1 ]
126127 Equal (t , ok , true )
127- Equal (t , v , 3 )
128- }
129-
130- // func TestInt8(t *testing.T) {
131-
132- // type intStruct struct {
133- // Int8Field int8
134- // Int8PtrField *int8
135- // }
136-
137- // tests := []struct {
138- // values url.Values
139- // expected int8
140- // isPtr bool
141- // }{
142- // {
143- // values: url.Values{"Int8Field": []string{"7"}},
144- // expected: 7,
145- // },
146- // {
147- // values: url.Values{"Int8PtrField": []string{"6"}},
148- // expected: 6,
149- // isPtr: true,
150- // },
151- // }
152-
153- // decoder := NewDecoder()
154-
155- // var test intStruct
156- // var val int8
157-
158- // for i, tt := range tests {
159- // decoder.Decode(&test, tt.values)
160-
161- // if tt.isPtr {
162- // if test.Int8PtrField == nil {
163- // t.Errorf("Idx: %d Expected '%d' Got '%d'", i, tt.expected, test.Int8PtrField)
164- // continue
165- // }
166- // val = *test.Int8PtrField
167- // } else {
168- // val = test.Int8Field
169- // }
170-
171- // if val != tt.expected {
172- // t.Errorf("Idx: %d Expected '%d' Got '%d'", i, tt.expected, val)
173- // }
174- // }
175- // // values := url.Values{
176- // // "Int8Field": []string{"5"},
177- // // }
178-
179- // // fmt.Println(test.Int8Field)
180- // // type mm map[string]*intStruct
181- // // // m := map[int]string{}
182- // // m := make(mm)
183- // // fmt.Println(reflect.ValueOf(m).Kind())
184- // }
185-
186- // func TestStraighUpArray(t *testing.T) {
128+ Equal (t , v , int (3 ))
187129
188- // type Array struct {
189- // MyArray []int8
190- // }
191-
192- // type ArrayPtr struct {
193- // MyArray []*int8
194- // }
195-
196- // values := url.Values{"MyArray": []string{"0", "1", "2"}}
197-
198- // decoder := NewDecoder()
199-
200- // var test Array
201- // var test2 ArrayPtr
202-
203- // // test2.MyArray = make([]*int8, 1, 1)
204-
205- // decoder.Decode(&test, values)
206- // decoder.Decode(&test2, values)
207-
208- // // fmt.Println("Test:", test)
209- // // fmt.Println("Test 2:", test2)
210- // // fmt.Println(*test2.MyArray[0])
211- // // fmt.Println(*test2.MyArray[1])
212- // // fmt.Println(*test2.MyArray[2])
213-
214- // }
215-
216- // func TestArrayNumbered(t *testing.T) {
217-
218- // type Array struct {
219- // MyArray []int8
220- // }
221-
222- // type ArrayPtr struct {
223- // MyArray []*int8
224- // }
225-
226- // values := url.Values{"MyArray[0]": []string{"32"}, "MyArray[2]": []string{"33"}}
227-
228- // decoder := NewDecoder()
229-
230- // var test Array
231- // var test2 ArrayPtr
232-
233- // decoder.Decode(&test, values)
234- // decoder.Decode(&test2, values)
235-
236- // // fmt.Println("Test:", test)
237- // // fmt.Println("Test 2:", test2)
238- // // fmt.Println(*test2.MyArray[0])
239- // // fmt.Println(test2.MyArray[1])
240- // // fmt.Println(*test2.MyArray[2])
241-
242- // }
243-
244- // func TestArrayOfArray(t *testing.T) {
130+ Equal (t , test .NoURLValue , int (0 ))
131+ }
245132
246- // type Array struct {
247- // MyArray [][]int8
248- // }
133+ func TestUint (t * testing.T ) {
134+
135+ type TestUint struct {
136+ Uint uint
137+ Uint8 uint8
138+ Uint16 uint16
139+ Uint32 uint32
140+ Uint64 uint64
141+ UintPtr * uint
142+ Uint8Ptr * uint8
143+ Uint16Ptr * uint16
144+ Uint32Ptr * uint32
145+ Uint64Ptr * uint64
146+ UintArray []uint
147+ UintPtrArray []* uint
148+ UintArrayArray [][]uint
149+ UintPtrArrayArray [][]* uint
150+ UintMap map [uint ]uint
151+ UintPtrMap map [* uint ]* uint
152+ NoURLValue uint
153+ }
249154
250- // type ArrayPtr struct {
251- // MyArray [][]*int8
252- // }
155+ values := url.Values {
156+ "Uint" : []string {"3" },
157+ "Uint8" : []string {"3" },
158+ "Uint16" : []string {"3" },
159+ "Uint32" : []string {"3" },
160+ "Uint64" : []string {"3" },
161+ "UintPtr" : []string {"3" },
162+ "Uint8Ptr" : []string {"3" },
163+ "Uint16Ptr" : []string {"3" },
164+ "Uint32Ptr" : []string {"3" },
165+ "Uint64Ptr" : []string {"3" },
166+ "UintArray" : []string {"1" , "2" , "3" },
167+ "UintPtrArray[0]" : []string {"1" },
168+ "UintPtrArray[2]" : []string {"3" },
169+ "UintArrayArray[0][0]" : []string {"1" },
170+ "UintArrayArray[0][2]" : []string {"3" },
171+ "UintArrayArray[2][0]" : []string {"1" },
172+ "UintPtrArrayArray[0][0]" : []string {"1" },
173+ "UintPtrArrayArray[0][2]" : []string {"3" },
174+ "UintPtrArrayArray[2][0]" : []string {"1" },
175+ "UintMap[1]" : []string {"3" },
176+ "UintPtrMap[1]" : []string {"3" },
177+ }
253178
254- // values := url.Values{"MyArray[0][0]": []string{"32"}, "MyArray[0][1]": []string{"35"}, "MyArray[2][0]": []string{"33"}}
179+ var test TestUint
255180
256- // decoder := NewDecoder( )
181+ test . UintArray = make ([] uint , 4 )
257182
258- // var test Array
259- // var test2 ArrayPtr
183+ decoder := NewDecoder ()
184+ errs := decoder .Decode (& test , values )
185+ Equal (t , errs , nil )
260186
261- // decoder.Decode(&test, values)
262- // decoder.Decode(&test2, values)
187+ Equal (t , test .Uint , uint (3 ))
188+ Equal (t , test .Uint8 , uint8 (3 ))
189+ Equal (t , test .Uint16 , uint16 (3 ))
190+ Equal (t , test .Uint32 , uint32 (3 ))
191+ Equal (t , test .Uint64 , uint64 (3 ))
192+
193+ Equal (t , * test .UintPtr , uint (3 ))
194+ Equal (t , * test .Uint8Ptr , uint8 (3 ))
195+ Equal (t , * test .Uint16Ptr , uint16 (3 ))
196+ Equal (t , * test .Uint32Ptr , uint32 (3 ))
197+ Equal (t , * test .Uint64Ptr , uint64 (3 ))
198+
199+ Equal (t , len (test .UintArray ), 4 )
200+ Equal (t , test .UintArray [0 ], uint (1 ))
201+ Equal (t , test .UintArray [1 ], uint (2 ))
202+ Equal (t , test .UintArray [2 ], uint (3 ))
203+ Equal (t , test .UintArray [3 ], uint (0 ))
204+
205+ Equal (t , len (test .UintPtrArray ), 3 )
206+ Equal (t , * test .UintPtrArray [0 ], uint (1 ))
207+ Equal (t , test .UintPtrArray [1 ], nil )
208+ Equal (t , * test .UintPtrArray [2 ], uint (3 ))
209+
210+ Equal (t , len (test .UintArrayArray ), 3 )
211+ Equal (t , len (test .UintArrayArray [0 ]), 3 )
212+ Equal (t , len (test .UintArrayArray [1 ]), 0 )
213+ Equal (t , len (test .UintArrayArray [2 ]), 1 )
214+ Equal (t , test .UintArrayArray [0 ][0 ], uint (1 ))
215+ Equal (t , test .UintArrayArray [0 ][1 ], uint (0 ))
216+ Equal (t , test .UintArrayArray [0 ][2 ], uint (3 ))
217+ Equal (t , test .UintArrayArray [2 ][0 ], uint (1 ))
218+
219+ Equal (t , len (test .UintPtrArrayArray ), 3 )
220+ Equal (t , len (test .UintPtrArrayArray [0 ]), 3 )
221+ Equal (t , len (test .UintPtrArrayArray [1 ]), 0 )
222+ Equal (t , len (test .UintPtrArrayArray [2 ]), 1 )
223+ Equal (t , * test .UintPtrArrayArray [0 ][0 ], uint (1 ))
224+ Equal (t , test .UintPtrArrayArray [0 ][1 ], nil )
225+ Equal (t , * test .UintPtrArrayArray [0 ][2 ], uint (3 ))
226+ Equal (t , * test .UintPtrArrayArray [2 ][0 ], uint (1 ))
227+
228+ Equal (t , len (test .UintMap ), 1 )
229+ Equal (t , len (test .UintPtrMap ), 1 )
230+
231+ v , ok := test .UintMap [1 ]
232+ Equal (t , ok , true )
233+ Equal (t , v , uint (3 ))
263234
264- // // fmt.Println("Test:", test)
265- // // fmt.Println("Test 2:", test2)
266- // }
235+ Equal (t , test .NoURLValue , uint (0 ))
236+ }
267237
268238// func TestString(t *testing.T) {
269239
0 commit comments