@@ -72,16 +72,16 @@ func TestConverter(t *testing.T) {
7272 t .Run ("success" , func (t * testing.T ) {
7373 err := conf .New ().Bind (& s )
7474 assert .Nil (t , err )
75- assert .Equal (t , s .Time , time .Date (2025 , 2 , 1 , 0 , 0 , 0 , 0 , time .UTC ))
76- assert .Equal (t , s .Duration , 10 * time .Second )
75+ assert .That (t , s .Time ). Equal ( time .Date (2025 , 2 , 1 , 0 , 0 , 0 , 0 , time .UTC ))
76+ assert .That (t , s .Duration ). Equal ( 10 * time .Second )
7777 })
7878
7979 t .Run ("error" , func (t * testing.T ) {
8080 p := conf .Map (map [string ]interface {}{
8181 "time" : "2025-02-01M00:00:00" ,
8282 })
8383 err := p .Bind (& s )
84- assert .Error (t , err , "unable to parse date: 2025-02-01M00:00:00" )
84+ assert .ThatError (t , err ). Matches ( "unable to parse date: 2025-02-01M00:00:00" )
8585 })
8686}
8787
@@ -91,19 +91,19 @@ func TestSplitter(t *testing.T) {
9191 var points []image.Point
9292 err := conf .New ().Bind (& points , "${:=(1,2)(3,4)}>>PointSplitter" )
9393 assert .Nil (t , err )
94- assert .Equal (t , points , []image.Point {{X : 1 , Y : 2 }, {X : 3 , Y : 4 }})
94+ assert .That (t , points ). Equal ( []image.Point {{X : 1 , Y : 2 }, {X : 3 , Y : 4 }})
9595 })
9696
9797 t .Run ("split error" , func (t * testing.T ) {
9898 var points []image.Point
9999 err := conf .New ().Bind (& points , "${:=(1}>>PointSplitter" )
100- assert .Error (t , err , "split error" )
100+ assert .ThatError (t , err ). Matches ( "split error" )
101101 })
102102
103103 t .Run ("unknown splitter" , func (t * testing.T ) {
104104 var points []image.Point
105105 err := conf .New ().Bind (& points , "${:=(1}>>UnknownSplitter" )
106- assert .Error (t , err , "unknown splitter 'UnknownSplitter'" )
106+ assert .ThatError (t , err ). Matches ( "unknown splitter 'UnknownSplitter'" )
107107 })
108108}
109109
@@ -112,34 +112,34 @@ func TestParseTag(t *testing.T) {
112112 t .Run ("normal" , func (t * testing.T ) {
113113 tag , err := conf .ParseTag ("${a}" )
114114 assert .Nil (t , err )
115- assert .Equal (t , tag .String (), "${a}" )
115+ assert .That (t , tag .String ()). Equal ( "${a}" )
116116 })
117117
118118 t .Run ("default" , func (t * testing.T ) {
119119 tag , err := conf .ParseTag ("${a:=123}" )
120120 assert .Nil (t , err )
121- assert .Equal (t , tag .String (), "${a:=123}" )
121+ assert .That (t , tag .String ()). Equal ( "${a:=123}" )
122122 })
123123
124124 t .Run ("splitter" , func (t * testing.T ) {
125125 tag , err := conf .ParseTag ("${a:=1,2,3}>>splitter" )
126126 assert .Nil (t , err )
127- assert .Equal (t , tag .String (), "${a:=1,2,3}>>splitter" )
127+ assert .That (t , tag .String ()). Equal ( "${a:=1,2,3}>>splitter" )
128128 })
129129
130130 t .Run ("error - 1" , func (t * testing.T ) {
131131 _ , err := conf .ParseTag (">>splitter" )
132- assert .Error (t , err , "parse tag .* error: invalid syntax" )
132+ assert .ThatError (t , err ). Matches ( "parse tag .* error: invalid syntax" )
133133 })
134134
135135 t .Run ("error - 2" , func (t * testing.T ) {
136136 _ , err := conf .ParseTag ("${a:=1,2,3" )
137- assert .Error (t , err , "parse tag .* error: invalid syntax" )
137+ assert .ThatError (t , err ). Matches ( "parse tag .* error: invalid syntax" )
138138 })
139139
140140 t .Run ("error - 3" , func (t * testing.T ) {
141141 _ , err := conf .ParseTag ("{a:=1,2,3}" )
142- assert .Error (t , err , "parse tag .* error: invalid syntax" )
142+ assert .ThatError (t , err ). Matches ( "parse tag .* error: invalid syntax" )
143143 })
144144}
145145
@@ -149,14 +149,14 @@ func TestBindParam(t *testing.T) {
149149 var param conf.BindParam
150150 err := param .BindTag ("${ROOT}" , "" )
151151 assert .Nil (t , err )
152- assert .Equal (t , param , conf.BindParam {})
152+ assert .That (t , param ). Equal ( conf.BindParam {})
153153 })
154154
155155 t .Run ("normal" , func (t * testing.T ) {
156156 var param conf.BindParam
157157 err := param .BindTag ("${a:=1,2,3}>>splitter" , "" )
158158 assert .Nil (t , err )
159- assert .Equal (t , param , conf.BindParam {
159+ assert .That (t , param ). Equal ( conf.BindParam {
160160 Key : "a" ,
161161 Path : "" ,
162162 Tag : conf.ParsedTag {
@@ -176,7 +176,7 @@ func TestBindParam(t *testing.T) {
176176 }
177177 err := param .BindTag ("${a:=1,2,3}>>splitter" , "" )
178178 assert .Nil (t , err )
179- assert .Equal (t , param , conf.BindParam {
179+ assert .That (t , param ). Equal ( conf.BindParam {
180180 Key : "s.a" ,
181181 Path : "Struct" ,
182182 Tag : conf.ParsedTag {
@@ -193,7 +193,7 @@ func TestBindParam(t *testing.T) {
193193 var param conf.BindParam
194194 err := param .BindTag ("${:=1,2,3}>>splitter" , "" )
195195 assert .Nil (t , err )
196- assert .Equal (t , param , conf.BindParam {
196+ assert .That (t , param ). Equal ( conf.BindParam {
197197 Key : "" ,
198198 Path : "" ,
199199 Tag : conf.ParsedTag {
@@ -209,13 +209,13 @@ func TestBindParam(t *testing.T) {
209209 t .Run ("error - 1" , func (t * testing.T ) {
210210 var param conf.BindParam
211211 err := param .BindTag ("a:=123" , "" )
212- assert .Error (t , err , "parse tag .* error: invalid syntax" )
212+ assert .ThatError (t , err ). Matches ( "parse tag .* error: invalid syntax" )
213213 })
214214
215215 t .Run ("error - 2" , func (t * testing.T ) {
216216 var param conf.BindParam
217217 err := param .BindTag ("${}" , "" )
218- assert .Error (t , err , "parse tag .* error: invalid syntax" )
218+ assert .ThatError (t , err ). Matches ( "parse tag .* error: invalid syntax" )
219219 })
220220}
221221
@@ -277,7 +277,7 @@ func TestProperties_Bind(t *testing.T) {
277277 var s UnnamedDefault
278278 err := conf .New ().Bind (& s )
279279 assert .Nil (t , err )
280- assert .Equal (t , s , UnnamedDefault {
280+ assert .That (t , s ). Equal ( UnnamedDefault {
281281 Strs : []string {"1" , "2" , "3" },
282282 Ints : []int {},
283283 Map : map [string ]int {},
@@ -287,17 +287,17 @@ func TestProperties_Bind(t *testing.T) {
287287 t .Run ("BindTag error" , func (t * testing.T ) {
288288 var i int
289289 err := conf .New ().Bind (& i , "$" )
290- assert .Error (t , err , "parse tag '\\ $' error: invalid syntax" )
290+ assert .ThatError (t , err ). Matches ( "parse tag '\\ $' error: invalid syntax" )
291291 })
292292
293293 t .Run ("target error - 1" , func (t * testing.T ) {
294294 err := conf .New ().Bind (5 )
295- assert .Error (t , err , "should be a ptr" )
295+ assert .ThatError (t , err ). Matches ( "should be a ptr" )
296296 })
297297
298298 t .Run ("target error - 1" , func (t * testing.T ) {
299299 err := conf .New ().Bind (new (* int ))
300- assert .Error (t , err , "target should be value type" )
300+ assert .ThatError (t , err ). Matches ( "target should be value type" )
301301 })
302302
303303 t .Run ("validate error" , func (t * testing.T ) {
@@ -307,14 +307,14 @@ func TestProperties_Bind(t *testing.T) {
307307 err := conf .Map (map [string ]interface {}{
308308 "v" : "1" ,
309309 }).Bind (& s )
310- assert .Error (t , err , "validate failed on .* for value 1" )
310+ assert .ThatError (t , err ). Matches ( "validate failed on .* for value 1" )
311311 })
312312
313313 t .Run ("array error" , func (t * testing.T ) {
314314 err := conf .New ().Bind (new (struct {
315315 Arr [3 ]string `value:"${arr:=1,2,3}"`
316316 }))
317- assert .Error (t , err , "use slice instead of array" )
317+ assert .ThatError (t , err ). Matches ( "use slice instead of array" )
318318 })
319319
320320 t .Run ("type error - 1" , func (t * testing.T ) {
@@ -324,7 +324,7 @@ func TestProperties_Bind(t *testing.T) {
324324 err := conf .Map (map [string ]interface {}{
325325 "v" : "abc" ,
326326 }).Bind (& s )
327- assert .Error (t , err , "strconv.ParseInt: parsing .*: invalid syntax" )
327+ assert .ThatError (t , err ). Matches ( "strconv.ParseInt: parsing .*: invalid syntax" )
328328 })
329329
330330 t .Run ("type error - 2" , func (t * testing.T ) {
@@ -334,7 +334,7 @@ func TestProperties_Bind(t *testing.T) {
334334 err := conf .Map (map [string ]interface {}{
335335 "v" : "abc" ,
336336 }).Bind (& s )
337- assert .Error (t , err , "strconv.ParseUint: parsing .*: invalid syntax" )
337+ assert .ThatError (t , err ). Matches ( "strconv.ParseUint: parsing .*: invalid syntax" )
338338 })
339339
340340 t .Run ("type error - 3" , func (t * testing.T ) {
@@ -344,7 +344,7 @@ func TestProperties_Bind(t *testing.T) {
344344 err := conf .Map (map [string ]interface {}{
345345 "v" : "abc" ,
346346 }).Bind (& s )
347- assert .Error (t , err , "strconv.ParseFloat: parsing .*: invalid syntax" )
347+ assert .ThatError (t , err ). Matches ( "strconv.ParseFloat: parsing .*: invalid syntax" )
348348 })
349349
350350 t .Run ("type error - 4" , func (t * testing.T ) {
@@ -354,7 +354,7 @@ func TestProperties_Bind(t *testing.T) {
354354 err := conf .Map (map [string ]interface {}{
355355 "v" : "abc" ,
356356 }).Bind (& s )
357- assert .Error (t , err , "strconv.ParseBool: parsing .*: invalid syntax" )
357+ assert .ThatError (t , err ). Matches ( "strconv.ParseBool: parsing .*: invalid syntax" )
358358 })
359359
360360 t .Run ("slice error - 1" , func (t * testing.T ) {
@@ -366,31 +366,31 @@ func TestProperties_Bind(t *testing.T) {
366366 "1" , "2" , "a" ,
367367 },
368368 }).Bind (& s )
369- assert .Error (t , err , "strconv.ParseInt: parsing .*: invalid syntax" )
369+ assert .ThatError (t , err ). Matches ( "strconv.ParseInt: parsing .*: invalid syntax" )
370370 })
371371
372372 t .Run ("slice error - 2" , func (t * testing.T ) {
373373 var s struct {
374374 Value []int `value:"${v}"`
375375 }
376376 err := conf .New ().Bind (& s )
377- assert .Error (t , err , "property \" v\" not exist" )
377+ assert .ThatError (t , err ). Matches ( "property \" v\" not exist" )
378378 })
379379
380380 t .Run ("slice error - 3" , func (t * testing.T ) {
381381 var s struct {
382382 Value []image.Rectangle `value:"${v:={(1,2)(3,4)}"`
383383 }
384384 err := conf .New ().Bind (& s )
385- assert .Error (t , err , "can't find converter for image.Rectangle" )
385+ assert .ThatError (t , err ). Matches ( "can't find converter for image.Rectangle" )
386386 })
387387
388388 t .Run ("map error - 1" , func (t * testing.T ) {
389389 var s struct {
390390 Value map [string ]int `value:"${v:=a:b,1:2}"`
391391 }
392392 err := conf .New ().Bind (& s )
393- assert .Error (t , err , "map can't have a non-empty default value" )
393+ assert .ThatError (t , err ). Matches ( "map can't have a non-empty default value" )
394394 })
395395
396396 t .Run ("map error - 2" , func (t * testing.T ) {
@@ -402,7 +402,7 @@ func TestProperties_Bind(t *testing.T) {
402402 "1" , "2" , "3" ,
403403 },
404404 }).Bind (& s )
405- assert .Error (t , err , "property v.0 not exist" )
405+ assert .ThatError (t , err ). Matches ( "property v.0 not exist" )
406406 })
407407
408408 t .Run ("map error - 3" , func (t * testing.T ) {
@@ -412,15 +412,15 @@ func TestProperties_Bind(t *testing.T) {
412412 err := conf .Map (map [string ]interface {}{
413413 "v" : "a:b,1:2" ,
414414 }).Bind (& s )
415- assert .Error (t , err , "property conflict at path v" )
415+ assert .ThatError (t , err ). Matches ( "property conflict at path v" )
416416 })
417417
418418 t .Run ("map error - 4" , func (t * testing.T ) {
419419 var s struct {
420420 Value map [string ]int `value:"${v}"`
421421 }
422422 err := conf .New ().Bind (& s )
423- assert .Error (t , err , "property \" v\" not exist" )
423+ assert .ThatError (t , err ). Matches ( "property \" v\" not exist" )
424424 })
425425
426426 t .Run ("struct error - 1" , func (t * testing.T ) {
@@ -430,7 +430,7 @@ func TestProperties_Bind(t *testing.T) {
430430 } `value:"${v:={123}}"`
431431 }
432432 err := conf .New ().Bind (& s )
433- assert .Error (t , err , "struct can't have a non-empty default value" )
433+ assert .ThatError (t , err ). Matches ( "struct can't have a non-empty default value" )
434434 })
435435
436436 t .Run ("struct error - 2" , func (t * testing.T ) {
@@ -441,15 +441,15 @@ func TestProperties_Bind(t *testing.T) {
441441 "v" : "123" ,
442442 }).Bind (& s )
443443 assert .Nil (t , err )
444- assert .Equal (t , s .int , 0 )
444+ assert .That (t , s .int ). Equal ( 0 )
445445 })
446446
447447 t .Run ("struct error - 3" , func (t * testing.T ) {
448448 var s struct {
449449 Value int `value:"v"`
450450 }
451451 err := conf .New ().Bind (& s )
452- assert .Error (t , err , "parse tag 'v' error: invalid syntax" )
452+ assert .ThatError (t , err ). Matches ( "parse tag 'v' error: invalid syntax" )
453453 })
454454
455455 t .Run ("struct error - 4" , func (t * testing.T ) {
@@ -465,7 +465,7 @@ func TestProperties_Bind(t *testing.T) {
465465 v := reflect .ValueOf (& i ).Elem ()
466466 err := conf .New ().Bind (v , "${:=3}" )
467467 assert .Nil (t , err )
468- assert .Equal (t , i , 3 )
468+ assert .That (t , i ). Equal ( 3 )
469469 })
470470
471471 t .Run ("success" , func (t * testing.T ) {
@@ -556,11 +556,11 @@ func TestProperties_Bind(t *testing.T) {
556556 var c DBConfig
557557 err = p .Bind (& c )
558558 assert .Nil (t , err )
559- assert .Equal (t , c , expect )
559+ assert .That (t , c ). Equal ( expect )
560560
561561 err = p .Bind (& c , "${prefix}" )
562562 assert .Nil (t , err )
563- assert .Equal (t , c , expect )
563+ assert .That (t , c ). Equal ( expect )
564564 })
565565
566566 t .Run ("filter false" , func (t * testing.T ) {
@@ -578,7 +578,7 @@ func TestProperties_Bind(t *testing.T) {
578578 return false , nil
579579 }))
580580 assert .Nil (t , err )
581- assert .Equal (t , s .Value , 3 )
581+ assert .That (t , s .Value ). Equal ( 3 )
582582 })
583583
584584 t .Run ("filter true" , func (t * testing.T ) {
@@ -596,7 +596,7 @@ func TestProperties_Bind(t *testing.T) {
596596 return true , nil
597597 }))
598598 assert .Nil (t , err )
599- assert .Equal (t , s .Value , 0 )
599+ assert .That (t , s .Value ). Equal ( 0 )
600600 })
601601
602602 t .Run ("filter error" , func (t * testing.T ) {
@@ -613,7 +613,7 @@ func TestProperties_Bind(t *testing.T) {
613613 funcFilter (func (i interface {}, param conf.BindParam ) (bool , error ) {
614614 return false , errors .New ("filter error" )
615615 }))
616- assert .Error (t , err , "filter error" )
617- assert .Equal (t , s .Value , 0 )
616+ assert .ThatError (t , err ). Matches ( "filter error" )
617+ assert .That (t , s .Value ). Equal ( 0 )
618618 })
619619}
0 commit comments