@@ -498,6 +498,13 @@ func TestTransitionUnmarshalJSON(t *testing.T) {
498
498
}
499
499
500
500
func TestDataInputSchemaUnmarshalJSON (t * testing.T ) {
501
+
502
+ var schemaName Object
503
+ err := json .Unmarshal ([]byte ("{\" key\" : \" value\" }" ), & schemaName )
504
+ if ! assert .NoError (t , err ) {
505
+ return
506
+ }
507
+
501
508
type testCase struct {
502
509
desp string
503
510
data string
@@ -508,53 +515,73 @@ func TestDataInputSchemaUnmarshalJSON(t *testing.T) {
508
515
testCases := []testCase {
509
516
{
510
517
desp : "string success" ,
511
- data : `"schema name"` ,
518
+ data : "{ \" key \" : \" value \" }" ,
512
519
expect : DataInputSchema {
513
- Schema : "schema name" ,
520
+ Schema : & schemaName ,
514
521
FailOnValidationErrors : true ,
515
522
},
516
523
err : `` ,
517
524
},
518
525
{
519
- desp : `object success` ,
520
- data : `{"schema ": "schema name"}` ,
526
+ desp : "string fail" ,
527
+ data : "{ \" key \ " : }" ,
521
528
expect : DataInputSchema {
522
- Schema : "schema name" ,
529
+ Schema : & schemaName ,
530
+ FailOnValidationErrors : true ,
531
+ },
532
+ err : `invalid character '}' looking for beginning of value` ,
533
+ },
534
+ {
535
+ desp : `object success (without quotes)` ,
536
+ data : `{"key": "value"}` ,
537
+ expect : DataInputSchema {
538
+ Schema : & schemaName ,
523
539
FailOnValidationErrors : true ,
524
540
},
525
541
err : `` ,
526
542
},
527
543
{
528
- desp : `object fail ` ,
529
- data : `{"schema": "schema name }` ,
544
+ desp : `schema object success ` ,
545
+ data : `{"schema": "{\"key\": \"value\"}" }` ,
530
546
expect : DataInputSchema {
531
- Schema : "schema name" ,
547
+ Schema : & schemaName ,
532
548
FailOnValidationErrors : true ,
533
549
},
534
- err : `unexpected end of JSON input ` ,
550
+ err : `` ,
535
551
},
536
552
{
537
- desp : `object key invalid ` ,
538
- data : `{"schema_invalid ": "schema name" }` ,
553
+ desp : `schema object success (without quotes) ` ,
554
+ data : `{"schema ": {"key": "value"} }` ,
539
555
expect : DataInputSchema {
556
+ Schema : & schemaName ,
540
557
FailOnValidationErrors : true ,
541
558
},
542
559
err : `` ,
543
560
},
561
+ {
562
+ desp : `schema object fail` ,
563
+ data : `{"schema": "schema name}` ,
564
+ expect : DataInputSchema {
565
+ Schema : & schemaName ,
566
+ FailOnValidationErrors : true ,
567
+ },
568
+ err : `unexpected end of JSON input` ,
569
+ },
544
570
}
545
571
for _ , tc := range testCases {
546
572
t .Run (tc .desp , func (t * testing.T ) {
547
573
var v DataInputSchema
548
574
err := json .Unmarshal ([]byte (tc .data ), & v )
549
575
550
576
if tc .err != "" {
551
- assert .Error (t , err )
552
- assert .Regexp (t , tc .err , err )
577
+ assert .Error (t , err , tc . desp )
578
+ assert .Regexp (t , tc .err , err , tc . desp )
553
579
return
554
580
}
555
581
556
- assert .NoError (t , err )
557
- assert .Equal (t , tc .expect , v )
582
+ assert .NoError (t , err , tc .desp )
583
+ assert .Equal (t , tc .expect .Schema , v .Schema , tc .desp )
584
+ assert .Equal (t , tc .expect .FailOnValidationErrors , v .FailOnValidationErrors , tc .desp )
558
585
})
559
586
}
560
587
}
0 commit comments