@@ -17,11 +17,33 @@ import (
17
17
type TestCodec struct {}
18
18
19
19
func (TestCodec ) Decode (id * resourcepb.Identifier ) (driver.Value , error ) {
20
+ if id .GetResourceId () == "err" {
21
+ return nil , errors .New ("test error" )
22
+ }
23
+ if id .GetResourceId () == "invalid" {
24
+ return true , nil
25
+ }
26
+ if id .GetResourceId () == "str" {
27
+ return "" , nil
28
+ }
29
+ if id .GetResourceId () == "strempty" {
30
+ return "" , nil
31
+ }
32
+ if id .GetResourceId () == "12" {
33
+ return strconv .ParseInt (id .GetResourceId (), 10 , 64 )
34
+ }
20
35
return id .ResourceId , nil
21
36
}
22
37
func (TestCodec ) Encode (value driver.Value ) (* resourcepb.Identifier , error ) {
23
- return & resourcepb.Identifier {ResourceId : value .(string )}, nil
24
-
38
+ switch value .(type ) {
39
+ case string :
40
+ return & resourcepb.Identifier {ResourceId : value .(string )}, nil
41
+ case int64 :
42
+ return & resourcepb.Identifier {ResourceId : strconv .FormatInt (value .(int64 ), 10 )}, nil
43
+ case []byte :
44
+ return & resourcepb.Identifier {ResourceId : string (value .([]byte ))}, nil
45
+ }
46
+ return nil , nil
25
47
}
26
48
27
49
type TestInt64Codec struct {}
@@ -395,66 +417,12 @@ func TestEncode(t *testing.T) {
395
417
},
396
418
},
397
419
{
398
- Identifier : & resourcepb.Identifier {
399
- ApplicationName : "" ,
400
- ResourceType : "" ,
401
- ResourceId : "" ,
402
- },
403
- Message : nil ,
404
- Value : 12 ,
405
- ExpectedError : "resource: invalid value type int, expected string" ,
406
- },
407
- {
408
- Value : nil ,
409
- Message : nil ,
410
- Identifier : nil ,
411
- },
412
- {
413
- Identifier : & resourcepb.Identifier {
414
- ApplicationName : "" ,
415
- ResourceType : "" ,
416
- ResourceId : "" ,
417
- },
418
- Message : nil ,
419
- Value : "" ,
420
- },
421
- }
422
-
423
- for n , tc := range tcases {
424
- id , err := Encode (tc .Message , tc .Value )
425
- if (err != nil && tc .ExpectedError != err .Error ()) || (err == nil && tc .ExpectedError != "" ) {
426
- t .Fatalf ("tc %d: invalid error %s, expected %s" , n , err , tc .ExpectedError )
427
- }
428
- if v := id .GetApplicationName (); v != tc .Identifier .GetApplicationName () {
429
- t .Errorf ("tc %d: invalid application name %s, expected %s" , n , v , tc .Identifier .ApplicationName )
430
- }
431
- if v := id .GetResourceType (); v != tc .Identifier .GetResourceType () {
432
- t .Errorf ("tc %d: nvalid resource type %s, expected %s" , n , v , tc .Identifier .ResourceType )
433
- }
434
- if v := id .GetResourceId (); v != tc .Identifier .GetResourceId () {
435
- t .Errorf ("tc %d: invalid resource id %s, expected %s" , n , v , tc .Identifier .ResourceId )
436
- }
437
- }
438
- }
439
-
440
- func TestEncodeInt64 (t * testing.T ) {
441
- RegisterCodec (& TestInt64Codec {}, & TestProtoMessage {})
442
- RegisterApplication ("app" )
443
- defer Cleanup (t )
444
-
445
- tcases := []struct {
446
- Value driver.Value
447
- Message proto.Message
448
- Identifier * resourcepb.Identifier
449
- ExpectedError string
450
- }{
451
- {
452
- Value : int64 (1 ),
420
+ Value : int64 (12 ),
453
421
Message : & TestProtoMessage {},
454
422
Identifier : & resourcepb.Identifier {
455
423
ApplicationName : "" ,
456
424
ResourceType : "" ,
457
- ResourceId : "1 " ,
425
+ ResourceId : "12 " ,
458
426
},
459
427
},
460
428
{
@@ -466,46 +434,6 @@ func TestEncodeInt64(t *testing.T) {
466
434
ResourceId : "1" ,
467
435
},
468
436
},
469
- {
470
- Value : "1" ,
471
- Message : nil ,
472
- Identifier : & resourcepb.Identifier {
473
- ApplicationName : "" ,
474
- ResourceType : "" ,
475
- ResourceId : "" ,
476
- },
477
- ExpectedError : "resource: invalid value type string, expected int64" ,
478
- },
479
- }
480
-
481
- for n , tc := range tcases {
482
- id , err := EncodeInt64 (tc .Message , tc .Value )
483
- if (err != nil && tc .ExpectedError != err .Error ()) || (err == nil && tc .ExpectedError != "" ) {
484
- t .Fatalf ("tc %d: invalid error %s, expected %s" , n , err , tc .ExpectedError )
485
- }
486
- if v := id .GetApplicationName (); v != tc .Identifier .GetApplicationName () {
487
- t .Errorf ("tc %d: invalid application name %s, expected %s" , n , v , tc .Identifier .GetApplicationName ())
488
- }
489
- if v := id .GetResourceType (); v != tc .Identifier .GetResourceType () {
490
- t .Errorf ("tc %d: invalid resource type %s, expected %s" , n , v , tc .Identifier .GetResourceType ())
491
- }
492
- if v := id .GetResourceId (); v != tc .Identifier .GetResourceId () {
493
- t .Errorf ("tc %d: invalid resource id %s, expected %s" , n , v , tc .Identifier .GetResourceId ())
494
- }
495
- }
496
- }
497
-
498
- func TestEncodeBytes (t * testing.T ) {
499
- RegisterCodec (& TestBytesCodec {}, & TestProtoMessage {})
500
- RegisterApplication ("app" )
501
- defer Cleanup (t )
502
-
503
- tcases := []struct {
504
- Value driver.Value
505
- Message proto.Message
506
- Identifier * resourcepb.Identifier
507
- ExpectedError string
508
- }{
509
437
{
510
438
Value : []byte ("1" ),
511
439
Message : & TestProtoMessage {},
@@ -525,30 +453,34 @@ func TestEncodeBytes(t *testing.T) {
525
453
},
526
454
},
527
455
{
528
- Value : "1" ,
529
- Message : nil ,
456
+ Value : nil ,
457
+ Message : nil ,
458
+ Identifier : nil ,
459
+ },
460
+ {
530
461
Identifier : & resourcepb.Identifier {
531
462
ApplicationName : "" ,
532
463
ResourceType : "" ,
533
464
ResourceId : "" ,
534
465
},
535
- ExpectedError : "resource: invalid value type string, expected []byte" ,
466
+ Message : nil ,
467
+ Value : "" ,
536
468
},
537
469
}
538
470
539
471
for n , tc := range tcases {
540
- id , err := EncodeBytes (tc .Message , tc .Value )
472
+ id , err := Encode (tc .Message , tc .Value )
541
473
if (err != nil && tc .ExpectedError != err .Error ()) || (err == nil && tc .ExpectedError != "" ) {
542
474
t .Fatalf ("tc %d: invalid error %s, expected %s" , n , err , tc .ExpectedError )
543
475
}
544
476
if v := id .GetApplicationName (); v != tc .Identifier .GetApplicationName () {
545
- t .Errorf ("tc %d: invalid application name %s, expected %s" , n , v , tc .Identifier .GetApplicationName () )
477
+ t .Errorf ("tc %d: invalid application name %s, expected %s" , n , v , tc .Identifier .ApplicationName )
546
478
}
547
479
if v := id .GetResourceType (); v != tc .Identifier .GetResourceType () {
548
- t .Errorf ("tc %d: invalid resource type %s, expected %s" , n , v , tc .Identifier .GetResourceType () )
480
+ t .Errorf ("tc %d: nvalid resource type %s, expected %s" , n , v , tc .Identifier .ResourceType )
549
481
}
550
482
if v := id .GetResourceId (); v != tc .Identifier .GetResourceId () {
551
- t .Errorf ("tc %d: invalid resource id %s, expected %s" , n , v , tc .Identifier .GetResourceId () )
483
+ t .Errorf ("tc %d: invalid resource id %s, expected %s" , n , v , tc .Identifier .ResourceId )
552
484
}
553
485
}
554
486
}
0 commit comments