@@ -473,10 +473,17 @@ var marshalingTests = []struct {
473
473
{"Any with message and indent" , marshalerAllOptions , anySimple , anySimplePrettyJSON },
474
474
{"Any with WKT" , marshaler , anyWellKnown , anyWellKnownJSON },
475
475
{"Any with WKT and indent" , marshalerAllOptions , anyWellKnown , anyWellKnownPrettyJSON },
476
- {"Duration" , marshaler , & pb.KnownTypes {Dur : & durpb.Duration {Seconds : 3 }}, `{"dur":"3s"}` },
477
- {"Duration" , marshaler , & pb.KnownTypes {Dur : & durpb.Duration {Seconds : 3 , Nanos : 1e6 }}, `{"dur":"3.001s"}` },
478
- {"Duration beyond float64 precision" , marshaler , & pb.KnownTypes {Dur : & durpb.Duration {Seconds : 100000000 , Nanos : 1 }}, `{"dur":"100000000.000000001s"}` },
479
- {"negative Duration" , marshaler , & pb.KnownTypes {Dur : & durpb.Duration {Seconds : - 123 , Nanos : - 456 }}, `{"dur":"-123.000000456s"}` },
476
+ {"Duration empty" , marshaler , & durpb.Duration {}, `"0s"` },
477
+ {"Duration with secs" , marshaler , & durpb.Duration {Seconds : 3 }, `"3s"` },
478
+ {"Duration with -secs" , marshaler , & durpb.Duration {Seconds : - 3 }, `"-3s"` },
479
+ {"Duration with nanos" , marshaler , & durpb.Duration {Nanos : 1e6 }, `"0.001s"` },
480
+ {"Duration with -nanos" , marshaler , & durpb.Duration {Nanos : - 1e6 }, `"-0.001s"` },
481
+ {"Duration with large secs" , marshaler , & durpb.Duration {Seconds : 1e10 , Nanos : 1 }, `"10000000000.000000001s"` },
482
+ {"Duration with 6-digit nanos" , marshaler , & durpb.Duration {Nanos : 1e4 }, `"0.000010s"` },
483
+ {"Duration with 3-digit nanos" , marshaler , & durpb.Duration {Nanos : 1e6 }, `"0.001s"` },
484
+ {"Duration with -secs -nanos" , marshaler , & durpb.Duration {Seconds : - 123 , Nanos : - 450 }, `"-123.000000450s"` },
485
+ {"Duration max value" , marshaler , & durpb.Duration {Seconds : 315576000000 , Nanos : 999999999 }, `"315576000000.999999999s"` },
486
+ {"Duration min value" , marshaler , & durpb.Duration {Seconds : - 315576000000 , Nanos : - 999999999 }, `"-315576000000.999999999s"` },
480
487
{"Struct" , marshaler , & pb.KnownTypes {St : & stpb.Struct {
481
488
Fields : map [string ]* stpb.Value {
482
489
"one" : {Kind : & stpb.Value_StringValue {"loneliest number" }},
@@ -549,15 +556,17 @@ func TestMarshalIllegalTime(t *testing.T) {
549
556
pb proto.Message
550
557
fail bool
551
558
}{
552
- {& pb.KnownTypes {Dur : & durpb.Duration {Seconds : 1 , Nanos : 0 }}, false },
553
- {& pb.KnownTypes {Dur : & durpb.Duration {Seconds : - 1 , Nanos : 0 }}, false },
554
- {& pb.KnownTypes {Dur : & durpb.Duration {Seconds : 1 , Nanos : - 1 }}, true },
555
- {& pb.KnownTypes {Dur : & durpb.Duration {Seconds : - 1 , Nanos : 1 }}, true },
556
- {& pb.KnownTypes {Dur : & durpb.Duration {Seconds : 1 , Nanos : 1000000000 }}, true },
557
- {& pb.KnownTypes {Dur : & durpb.Duration {Seconds : - 1 , Nanos : - 1000000000 }}, true },
558
- {& pb.KnownTypes {Ts : & tspb.Timestamp {Seconds : 1 , Nanos : 1 }}, false },
559
- {& pb.KnownTypes {Ts : & tspb.Timestamp {Seconds : 1 , Nanos : - 1 }}, true },
560
- {& pb.KnownTypes {Ts : & tspb.Timestamp {Seconds : 1 , Nanos : 1000000000 }}, true },
559
+ {& durpb.Duration {Seconds : 1 , Nanos : 0 }, false },
560
+ {& durpb.Duration {Seconds : - 1 , Nanos : 0 }, false },
561
+ {& durpb.Duration {Seconds : 1 , Nanos : - 1 }, true },
562
+ {& durpb.Duration {Seconds : - 1 , Nanos : 1 }, true },
563
+ {& durpb.Duration {Seconds : 315576000001 }, true },
564
+ {& durpb.Duration {Seconds : - 315576000001 }, true },
565
+ {& durpb.Duration {Seconds : 1 , Nanos : 1000000000 }, true },
566
+ {& durpb.Duration {Seconds : - 1 , Nanos : - 1000000000 }, true },
567
+ {& tspb.Timestamp {Seconds : 1 , Nanos : 1 }, false },
568
+ {& tspb.Timestamp {Seconds : 1 , Nanos : - 1 }, true },
569
+ {& tspb.Timestamp {Seconds : 1 , Nanos : 1000000000 }, true },
561
570
}
562
571
for _ , tt := range tests {
563
572
_ , err := marshaler .MarshalToString (tt .pb )
@@ -607,8 +616,7 @@ func TestMarshalAnyJSONPBMarshaler(t *testing.T) {
607
616
t .Errorf ("an unexpected error occurred when marshalling Any to JSON: %v" , err )
608
617
}
609
618
// same as expected above, but pretty-printed w/ indentation
610
- expected =
611
- `{
619
+ expected = `{
612
620
"@type": "type.googleapis.com/` + dynamicMessageName + `",
613
621
"baz": [
614
622
0,
@@ -623,7 +631,6 @@ func TestMarshalAnyJSONPBMarshaler(t *testing.T) {
623
631
}
624
632
}
625
633
626
-
627
634
func TestMarshalWithCustomValidation (t * testing.T ) {
628
635
msg := dynamicMessage {RawJson : `{ "foo": "bar", "baz": [0, 1, 2, 3] }` , Dummy : & dynamicMessage {}}
629
636
0 commit comments