@@ -363,7 +363,7 @@ var (
363
363
An : & types.Any {
364
364
TypeUrl : "type.googleapis.com/google.protobuf.Duration" ,
365
365
Value : []byte {
366
- // &durpb .Duration{Seconds: 1, Nanos: 212000000 }
366
+ // &types .Duration{Seconds: 1, Nanos: 212000000 }
367
367
1 << 3 , 1 , // seconds
368
368
2 << 3 , 0x80 , 0xba , 0x8b , 0x65 , // nanos
369
369
},
@@ -472,10 +472,18 @@ var marshalingTests = []struct {
472
472
{"Any with message and indent" , marshalerAllOptions , anySimple , anySimplePrettyJSON },
473
473
{"Any with WKT" , marshaler , anyWellKnown , anyWellKnownJSON },
474
474
{"Any with WKT and indent" , marshalerAllOptions , anyWellKnown , anyWellKnownPrettyJSON },
475
- {"Duration" , marshaler , & pb.KnownTypes {Dur : & types.Duration {Seconds : 3 }}, `{"dur":"3s"}` },
476
- {"Duration" , marshaler , & pb.KnownTypes {Dur : & types.Duration {Seconds : 3 , Nanos : 1e6 }}, `{"dur":"3.001s"}` },
477
- {"Duration beyond float64 precision" , marshaler , & pb.KnownTypes {Dur : & types.Duration {Seconds : 100000000 , Nanos : 1 }}, `{"dur":"100000000.000000001s"}` },
478
- {"negative Duration" , marshaler , & pb.KnownTypes {Dur : & types.Duration {Seconds : - 123 , Nanos : - 456 }}, `{"dur":"-123.000000456s"}` },
475
+ {"Duration empty" , marshaler , & types.Duration {}, `"0s"` },
476
+ {"Duration with secs" , marshaler , & types.Duration {Seconds : 3 }, `"3s"` },
477
+ {"Duration with -secs" , marshaler , & types.Duration {Seconds : - 3 }, `"-3s"` },
478
+ {"Duration with nanos" , marshaler , & types.Duration {Nanos : 1e6 }, `"0.001s"` },
479
+ {"Duration with -nanos" , marshaler , & types.Duration {Nanos : - 1e6 }, `"-0.001s"` },
480
+ {"Duration with large secs" , marshaler , & types.Duration {Seconds : 1e10 , Nanos : 1 }, `"10000000000.000000001s"` },
481
+ {"Duration with 6-digit nanos" , marshaler , & types.Duration {Nanos : 1e4 }, `"0.000010s"` },
482
+ {"Duration with 3-digit nanos" , marshaler , & types.Duration {Nanos : 1e6 }, `"0.001s"` },
483
+ {"Duration with -secs -nanos" , marshaler , & types.Duration {Seconds : - 123 , Nanos : - 450 }, `"-123.000000450s"` },
484
+ {"Duration max value" , marshaler , & types.Duration {Seconds : 315576000000 , Nanos : 999999999 }, `"315576000000.999999999s"` },
485
+ {"Duration small negative" , marshaler , & types.Duration {Nanos : - 1 }, `"-0.000000001s"` },
486
+ {"Duration min value" , marshaler , & types.Duration {Seconds : - 315576000000 , Nanos : - 999999999 }, `"-315576000000.999999999s"` },
479
487
{"Struct" , marshaler , & pb.KnownTypes {St : & types.Struct {
480
488
Fields : map [string ]* types.Value {
481
489
"one" : {Kind : & types.Value_StringValue {StringValue : "loneliest number" }},
@@ -546,15 +554,17 @@ func TestMarshalIllegalTime(t *testing.T) {
546
554
pb proto.Message
547
555
fail bool
548
556
}{
549
- {& pb.KnownTypes {Dur : & types.Duration {Seconds : 1 , Nanos : 0 }}, false },
550
- {& pb.KnownTypes {Dur : & types.Duration {Seconds : - 1 , Nanos : 0 }}, false },
551
- {& pb.KnownTypes {Dur : & types.Duration {Seconds : 1 , Nanos : - 1 }}, true },
552
- {& pb.KnownTypes {Dur : & types.Duration {Seconds : - 1 , Nanos : 1 }}, true },
553
- {& pb.KnownTypes {Dur : & types.Duration {Seconds : 1 , Nanos : 1000000000 }}, true },
554
- {& pb.KnownTypes {Dur : & types.Duration {Seconds : - 1 , Nanos : - 1000000000 }}, true },
555
- {& pb.KnownTypes {Ts : & types.Timestamp {Seconds : 1 , Nanos : 1 }}, false },
556
- {& pb.KnownTypes {Ts : & types.Timestamp {Seconds : 1 , Nanos : - 1 }}, true },
557
- {& pb.KnownTypes {Ts : & types.Timestamp {Seconds : 1 , Nanos : 1000000000 }}, true },
557
+ {& types.Duration {Seconds : 1 , Nanos : 0 }, false },
558
+ {& types.Duration {Seconds : - 1 , Nanos : 0 }, false },
559
+ {& types.Duration {Seconds : 1 , Nanos : - 1 }, true },
560
+ {& types.Duration {Seconds : - 1 , Nanos : 1 }, true },
561
+ {& types.Duration {Seconds : 315576000001 }, true },
562
+ {& types.Duration {Seconds : - 315576000001 }, true },
563
+ {& types.Duration {Seconds : 1 , Nanos : 1000000000 }, true },
564
+ {& types.Duration {Seconds : - 1 , Nanos : - 1000000000 }, true },
565
+ {& types.Timestamp {Seconds : 1 , Nanos : 1 }, false },
566
+ {& types.Timestamp {Seconds : 1 , Nanos : - 1 }, true },
567
+ {& types.Timestamp {Seconds : 1 , Nanos : 1000000000 }, true },
558
568
}
559
569
for _ , tt := range tests {
560
570
_ , err := marshaler .MarshalToString (tt .pb )
@@ -604,8 +614,7 @@ func TestMarshalAnyJSONPBMarshaler(t *testing.T) {
604
614
t .Errorf ("an unexpected error occurred when marshalling Any to JSON: %v" , err )
605
615
}
606
616
// same as expected above, but pretty-printed w/ indentation
607
- expected =
608
- `{
617
+ expected = `{
609
618
"@type": "type.googleapis.com/` + dynamicMessageName + `",
610
619
"baz": [
611
620
0,
0 commit comments