@@ -393,6 +393,12 @@ public class JsonToProtoMessageTest {
393
393
.setMode (TableFieldSchema .Mode .NULLABLE )
394
394
.setName ("test_timestamp" )
395
395
.build ();
396
+ private final TableFieldSchema TEST_TIMESTAMP_REPEATED =
397
+ TableFieldSchema .newBuilder ()
398
+ .setType (TableFieldSchema .Type .TIMESTAMP )
399
+ .setMode (TableFieldSchema .Mode .REPEATED )
400
+ .setName ("test_timestamp_repeated" )
401
+ .build ();
396
402
private final TableFieldSchema TEST_TIME =
397
403
TableFieldSchema .newBuilder ()
398
404
.setType (TableFieldSchema .Type .TIME )
@@ -787,17 +793,17 @@ public void testTimestamp() throws Exception {
787
793
TestTimestamp .newBuilder ()
788
794
.setTestString (10L )
789
795
.setTestStringTZ (1648493279010000L )
790
- .setTestLong (0L )
791
- .setTestInt (1534806950000000L )
792
- .setTestFloat (1534680695000000000L )
796
+ .setTestLong (1687984085000000L )
797
+ .setTestInt (153480695L )
798
+ .setTestFloat (153468069500L )
793
799
.setTestOffset (1649135171000000L )
794
800
.setTestTimezone (1649174771000000L )
795
801
.setTestSaformat (1534680660000000L )
796
802
.build ();
797
803
JSONObject json = new JSONObject ();
798
804
json .put ("test_string" , "1970-01-01 00:00:00.000010" );
799
805
json .put ("test_string_T_Z" , "2022-03-28T18:47:59.01Z" );
800
- json .put ("test_long" , 0L );
806
+ json .put ("test_long" , 1687984085000000L );
801
807
json .put ("test_int" , 153480695 );
802
808
json .put ("test_float" , "1.534680695e11" );
803
809
json .put ("test_offset" , "2022-04-05T09:06:11+04:00" );
@@ -809,6 +815,69 @@ public void testTimestamp() throws Exception {
809
815
assertEquals (expectedProto , protoMsg );
810
816
}
811
817
818
+ @ Test
819
+ public void testTimestampRepeated () throws Exception {
820
+ TableSchema tableSchema =
821
+ TableSchema .newBuilder ()
822
+ .addFields (
823
+ TableFieldSchema .newBuilder (TEST_TIMESTAMP_REPEATED )
824
+ .setName ("test_string_repeated" )
825
+ .build ())
826
+ .addFields (
827
+ TableFieldSchema .newBuilder (TEST_TIMESTAMP_REPEATED )
828
+ .setName ("test_string_T_Z_repeated" )
829
+ .build ())
830
+ .addFields (
831
+ TableFieldSchema .newBuilder (TEST_TIMESTAMP_REPEATED )
832
+ .setName ("test_long_repeated" )
833
+ .build ())
834
+ .addFields (
835
+ TableFieldSchema .newBuilder (TEST_TIMESTAMP_REPEATED )
836
+ .setName ("test_int_repeated" )
837
+ .build ())
838
+ .addFields (
839
+ TableFieldSchema .newBuilder (TEST_TIMESTAMP_REPEATED )
840
+ .setName ("test_float_repeated" )
841
+ .build ())
842
+ .addFields (
843
+ TableFieldSchema .newBuilder (TEST_TIMESTAMP_REPEATED )
844
+ .setName ("test_offset_repeated" )
845
+ .build ())
846
+ .addFields (
847
+ TableFieldSchema .newBuilder (TEST_TIMESTAMP_REPEATED )
848
+ .setName ("test_timezone_repeated" )
849
+ .build ())
850
+ .addFields (
851
+ TableFieldSchema .newBuilder (TEST_TIMESTAMP_REPEATED )
852
+ .setName ("test_saformat_repeated" )
853
+ .build ())
854
+ .build ();
855
+ TestRepeatedTimestamp expectedProto =
856
+ TestRepeatedTimestamp .newBuilder ()
857
+ .addTestStringRepeated (10L )
858
+ .addTestStringTZRepeated (1648493279010000L )
859
+ .addTestLongRepeated (1687984085000000L )
860
+ .addTestIntRepeated (153480695L )
861
+ .addTestFloatRepeated (153468069500L )
862
+ .addTestOffsetRepeated (1649135171000000L )
863
+ .addTestTimezoneRepeated (1649174771000000L )
864
+ .addTestSaformatRepeated (1534680660000000L )
865
+ .build ();
866
+ JSONObject json = new JSONObject ();
867
+ json .put ("test_string_repeated" , new JSONArray (new String [] {"1970-01-01 00:00:00.000010" }));
868
+ json .put ("test_string_T_Z_repeated" , new JSONArray (new String [] {"2022-03-28T18:47:59.01Z" }));
869
+ json .put ("test_long_repeated" , new JSONArray (new Long [] {1687984085000000L }));
870
+ json .put ("test_int_repeated" , new JSONArray (new Integer [] {153480695 }));
871
+ json .put ("test_float_repeated" , new JSONArray (new String [] {"1.534680695e11" }));
872
+ json .put ("test_offset_repeated" , new JSONArray (new String [] {"2022-04-05T09:06:11+04:00" }));
873
+ json .put ("test_timezone_repeated" , new JSONArray (new String [] {"2022-04-05 09:06:11 PST" }));
874
+ json .put ("test_saformat_repeated" , new JSONArray (new String [] {"2018/08/19 12:11" }));
875
+ DynamicMessage protoMsg =
876
+ JsonToProtoMessage .INSTANCE .convertToProtoMessage (
877
+ TestRepeatedTimestamp .getDescriptor (), tableSchema , json );
878
+ assertEquals (expectedProto , protoMsg );
879
+ }
880
+
812
881
@ Test
813
882
public void testDate () throws Exception {
814
883
TableSchema tableSchema =
@@ -993,7 +1062,7 @@ public void testStructComplex() throws Exception {
993
1062
.setTestNumeric (
994
1063
BigDecimalByteStringEncoder .encodeToNumericByteString (new BigDecimal ("1.23456" )))
995
1064
.setTestGeo ("POINT(1,1)" )
996
- .setTestTimestamp (123456780000000L )
1065
+ .setTestTimestamp (12345678L )
997
1066
.setTestTime (CivilTimeEncoder .encodePacked64TimeMicros (LocalTime .of (1 , 0 , 1 )))
998
1067
.setTestTimeStr (89332507144L )
999
1068
.addTestNumericRepeated (
0 commit comments