1717
1818import static org .junit .Assert .assertEquals ;
1919import static org .junit .Assert .assertNotNull ;
20- import static org .junit .Assert .assertThrows ;
2120import static org .junit .Assert .assertTrue ;
2221
2322import com .google .cloud .bigquery .storage .test .JsonTest ;
@@ -71,9 +70,9 @@ private void mapDescriptorToCount(Descriptor descriptor, HashMap<String, Integer
7170
7271 // Checks that two descriptors are the same by the check the fields inside the descriptors.
7372 // Checks that each descriptor has the same number of fields and that each field has the same
74- // type and mode on the message. If a field is a nested message, then it recurisvly checks the
73+ // type and mode on the message. If a field is a nested message, then it recursively checks the
7574 // fields inside each nested message.
76- private void assertDesciptorsAreEqual (Descriptor expected , Descriptor actual ) {
75+ private void assertDescriptorsAreEqual (Descriptor expected , Descriptor actual ) {
7776 // Check same number of fields
7877 assertEquals (actual .getFields ().size (), expected .getFields ().size ());
7978 for (FieldDescriptor convertedField : actual .getFields ()) {
@@ -90,7 +89,7 @@ private void assertDesciptorsAreEqual(Descriptor expected, Descriptor actual) {
9089 assertEquals (expectedField .isOptional (), convertedField .isOptional ());
9190 // Recursively check nested messages
9291 if (convertedType == FieldDescriptor .Type .MESSAGE ) {
93- assertDesciptorsAreEqual (expectedField .getMessageType (), convertedField .getMessageType ());
92+ assertDescriptorsAreEqual (expectedField .getMessageType (), convertedField .getMessageType ());
9493 }
9594 }
9695 }
@@ -109,7 +108,7 @@ public void testSimpleTypes() throws Exception {
109108 TableSchema .newBuilder ().addFields (0 , tableFieldSchema ).build ();
110109 final Descriptor descriptor =
111110 BQTableSchemaToProtoDescriptor .convertBQTableSchemaToProtoDescriptor (tableSchema );
112- assertDesciptorsAreEqual (entry .getValue (), descriptor );
111+ assertDescriptorsAreEqual (entry .getValue (), descriptor );
113112 }
114113 }
115114
@@ -127,7 +126,7 @@ public void testTimestampType_higherTimestampPrecision()
127126 TableSchema tableSchema = TableSchema .newBuilder ().addFields (0 , tableFieldSchema ).build ();
128127 Descriptor descriptor =
129128 BQTableSchemaToProtoDescriptor .convertBQTableSchemaToProtoDescriptor (tableSchema );
130- assertDesciptorsAreEqual (SchemaTest .StringType .getDescriptor (), descriptor );
129+ assertDescriptorsAreEqual (SchemaTest .StringType .getDescriptor (), descriptor );
131130 }
132131
133132 @ Test
@@ -197,7 +196,7 @@ public void testRange() throws Exception {
197196 .build ();
198197 final Descriptor descriptor =
199198 BQTableSchemaToProtoDescriptor .convertBQTableSchemaToProtoDescriptor (tableSchema );
200- assertDesciptorsAreEqual (JsonTest .TestRange .getDescriptor (), descriptor );
199+ assertDescriptorsAreEqual (JsonTest .TestRange .getDescriptor (), descriptor );
201200 }
202201
203202 @ Test
@@ -218,7 +217,7 @@ public void testStructSimple() throws Exception {
218217 final TableSchema tableSchema = TableSchema .newBuilder ().addFields (0 , tableFieldSchema ).build ();
219218 final Descriptor descriptor =
220219 BQTableSchemaToProtoDescriptor .convertBQTableSchemaToProtoDescriptor (tableSchema );
221- assertDesciptorsAreEqual (SchemaTest .MessageType .getDescriptor (), descriptor );
220+ assertDescriptorsAreEqual (SchemaTest .MessageType .getDescriptor (), descriptor );
222221 }
223222
224223 @ Test
@@ -464,7 +463,7 @@ public void testStructComplex() throws Exception {
464463 .build ();
465464 final Descriptor descriptor =
466465 BQTableSchemaToProtoDescriptor .convertBQTableSchemaToProtoDescriptor (tableSchema );
467- assertDesciptorsAreEqual (JsonTest .ComplexRoot .getDescriptor (), descriptor );
466+ assertDescriptorsAreEqual (JsonTest .ComplexRoot .getDescriptor (), descriptor );
468467 }
469468
470469 @ Test
@@ -544,7 +543,7 @@ public void testCasingComplexStruct() throws Exception {
544543 .build ();
545544 final Descriptor descriptor =
546545 BQTableSchemaToProtoDescriptor .convertBQTableSchemaToProtoDescriptor (tableSchema );
547- assertDesciptorsAreEqual (JsonTest .CasingComplex .getDescriptor (), descriptor );
546+ assertDescriptorsAreEqual (JsonTest .CasingComplex .getDescriptor (), descriptor );
548547 }
549548
550549 @ Test
@@ -575,7 +574,7 @@ public void testOptions() throws Exception {
575574 .build ();
576575 final Descriptor descriptor =
577576 BQTableSchemaToProtoDescriptor .convertBQTableSchemaToProtoDescriptor (tableSchema );
578- assertDesciptorsAreEqual (JsonTest .OptionTest .getDescriptor (), descriptor );
577+ assertDescriptorsAreEqual (JsonTest .OptionTest .getDescriptor (), descriptor );
579578 }
580579
581580 @ Test
@@ -632,7 +631,7 @@ public void testDescriptorReuseDuringCreation() throws Exception {
632631 assertEquals (descriptorToCount .get ("root__reuse_lvl1" ).intValue (), 3 );
633632 assertTrue (descriptorToCount .containsKey ("root__reuse_lvl1__reuse_lvl2" ));
634633 assertEquals (descriptorToCount .get ("root__reuse_lvl1__reuse_lvl2" ).intValue (), 3 );
635- assertDesciptorsAreEqual (JsonTest .ReuseRoot .getDescriptor (), descriptor );
634+ assertDescriptorsAreEqual (JsonTest .ReuseRoot .getDescriptor (), descriptor );
636635 }
637636
638637 @ Test
@@ -660,7 +659,7 @@ public void testNestedFlexibleFieldName() throws Exception {
660659 TableSchema .newBuilder ().addFields (0 , stringField ).addFields (1 , nestedField ).build ();
661660 final Descriptor descriptor =
662661 BQTableSchemaToProtoDescriptor .convertBQTableSchemaToProtoDescriptor (tableSchema );
663- assertDesciptorsAreEqual (SchemaTest .TestNestedFlexibleFieldName .getDescriptor (), descriptor );
662+ assertDescriptorsAreEqual (SchemaTest .TestNestedFlexibleFieldName .getDescriptor (), descriptor );
664663 }
665664
666665 @ Test
@@ -691,29 +690,38 @@ public void timestampField_picosecondPrecision() throws Exception {
691690 }
692691
693692 @ Test
694- public void timestampField_picosecondPrecision_invalid () throws Exception {
693+ public void timestampField_unexpectedPrecision () throws Exception {
695694 TableFieldSchema timestampField =
696695 TableFieldSchema .newBuilder ()
697696 .setType (TableFieldSchema .Type .TIMESTAMP )
698697 .setTimestampPrecision (Int64Value .newBuilder ().setValue (13 ).build ())
699698 .setMode (TableFieldSchema .Mode .NULLABLE )
700699 .build ();
701- assertThrows (
702- IllegalStateException .class ,
703- () ->
704- BQTableSchemaToProtoDescriptor .convertBQTableFieldToProtoField (
705- timestampField , 0 , null ));
700+ DescriptorProtos .FieldDescriptorProto fieldDescriptorProto =
701+ BQTableSchemaToProtoDescriptor .convertBQTableFieldToProtoField (timestampField , 0 , null );
702+ assertEquals (
703+ DescriptorProtos .FieldDescriptorProto .Type .TYPE_INT64 , fieldDescriptorProto .getType ());
706704
707705 TableFieldSchema timestampField1 =
708706 TableFieldSchema .newBuilder ()
709707 .setType (TableFieldSchema .Type .TIMESTAMP )
710708 .setTimestampPrecision (Int64Value .newBuilder ().setValue (7 ).build ())
711709 .setMode (TableFieldSchema .Mode .NULLABLE )
712710 .build ();
713- assertThrows (
714- IllegalStateException .class ,
715- () ->
716- BQTableSchemaToProtoDescriptor .convertBQTableFieldToProtoField (
717- timestampField1 , 0 , null ));
711+ DescriptorProtos .FieldDescriptorProto fieldDescriptorProto1 =
712+ BQTableSchemaToProtoDescriptor .convertBQTableFieldToProtoField (timestampField1 , 0 , null );
713+ assertEquals (
714+ DescriptorProtos .FieldDescriptorProto .Type .TYPE_INT64 , fieldDescriptorProto1 .getType ());
715+
716+ TableFieldSchema timestampField2 =
717+ TableFieldSchema .newBuilder ()
718+ .setType (TableFieldSchema .Type .TIMESTAMP )
719+ .setTimestampPrecision (Int64Value .newBuilder ().setValue (-1 ).build ())
720+ .setMode (TableFieldSchema .Mode .NULLABLE )
721+ .build ();
722+ DescriptorProtos .FieldDescriptorProto fieldDescriptorProto2 =
723+ BQTableSchemaToProtoDescriptor .convertBQTableFieldToProtoField (timestampField2 , 0 , null );
724+ assertEquals (
725+ DescriptorProtos .FieldDescriptorProto .Type .TYPE_INT64 , fieldDescriptorProto2 .getType ());
718726 }
719727}
0 commit comments