434
444
assertEquals(copy, set);
435
445
assertEquals(set.hashCode(), copy.hashCode());
448
// =================================================================
450
public void testSerializeLite() throws Exception {
451
UnittestLite.TestEmptyMessageLite emptyMessageLite =
452
UnittestLite.TestEmptyMessageLite.parseFrom(allFieldsData);
453
assertEquals(allFieldsData.size(), emptyMessageLite.getSerializedSize());
454
ByteString data = emptyMessageLite.toByteString();
455
TestAllTypes message = TestAllTypes.parseFrom(data);
456
TestUtil.assertAllFieldsSet(message);
457
assertEquals(allFieldsData, data);
460
public void testAllExtensionsLite() throws Exception {
461
TestAllExtensions allExtensions = TestUtil.getAllExtensionsSet();
462
ByteString allExtensionsData = allExtensions.toByteString();
463
UnittestLite.TestEmptyMessageLite emptyMessageLite =
464
UnittestLite.TestEmptyMessageLite.PARSER.parseFrom(allExtensionsData);
465
ByteString data = emptyMessageLite.toByteString();
466
TestAllExtensions message =
467
TestAllExtensions.parseFrom(data, TestUtil.getExtensionRegistry());
468
TestUtil.assertAllExtensionsSet(message);
469
assertEquals(allExtensionsData, data);
472
public void testAllPackedFieldsLite() throws Exception {
473
TestPackedTypes allPackedFields = TestUtil.getPackedSet();
474
ByteString allPackedData = allPackedFields.toByteString();
475
UnittestLite.TestEmptyMessageLite emptyMessageLite =
476
UnittestLite.TestEmptyMessageLite.parseFrom(allPackedData);
477
ByteString data = emptyMessageLite.toByteString();
478
TestPackedTypes message =
479
TestPackedTypes.parseFrom(data, TestUtil.getExtensionRegistry());
480
TestUtil.assertPackedFieldsSet(message);
481
assertEquals(allPackedData, data);
484
public void testAllPackedExtensionsLite() throws Exception {
485
TestPackedExtensions allPackedExtensions = TestUtil.getPackedExtensionsSet();
486
ByteString allPackedExtensionsData = allPackedExtensions.toByteString();
487
UnittestLite.TestEmptyMessageLite emptyMessageLite =
488
UnittestLite.TestEmptyMessageLite.parseFrom(allPackedExtensionsData);
489
ByteString data = emptyMessageLite.toByteString();
490
TestPackedExtensions message =
491
TestPackedExtensions.parseFrom(data, TestUtil.getExtensionRegistry());
492
TestUtil.assertPackedExtensionsSet(message);
493
assertEquals(allPackedExtensionsData, data);
496
public void testCopyFromLite() throws Exception {
497
UnittestLite.TestEmptyMessageLite emptyMessageLite =
498
UnittestLite.TestEmptyMessageLite.parseFrom(allFieldsData);
499
UnittestLite.TestEmptyMessageLite emptyMessageLite2 =
500
UnittestLite.TestEmptyMessageLite.newBuilder()
501
.mergeFrom(emptyMessageLite).build();
502
assertEquals(emptyMessageLite.toByteString(), emptyMessageLite2.toByteString());
505
public void testMergeFromLite() throws Exception {
506
TestAllTypes message1 = TestAllTypes.newBuilder()
508
.setOptionalString("foo")
509
.addRepeatedString("bar")
510
.setOptionalNestedEnum(TestAllTypes.NestedEnum.BAZ)
513
TestAllTypes message2 = TestAllTypes.newBuilder()
515
.setOptionalString("baz")
516
.addRepeatedString("qux")
517
.setOptionalForeignEnum(ForeignEnum.FOREIGN_BAZ)
520
ByteString data1 = message1.toByteString();
521
UnittestLite.TestEmptyMessageLite emptyMessageLite1 =
522
UnittestLite.TestEmptyMessageLite.parseFrom(data1);
523
ByteString data2 = message2.toByteString();
524
UnittestLite.TestEmptyMessageLite emptyMessageLite2 =
525
UnittestLite.TestEmptyMessageLite.parseFrom(data2);
527
message1 = TestAllTypes.newBuilder(message1).mergeFrom(message2).build();
528
emptyMessageLite1 = UnittestLite.TestEmptyMessageLite.newBuilder(emptyMessageLite1)
529
.mergeFrom(emptyMessageLite2).build();
531
data1 = emptyMessageLite1.toByteString();
532
message2 = TestAllTypes.parseFrom(data1);
534
assertEquals(message1, message2);
537
public void testWrongTypeTreatedAsUnknownLite() throws Exception {
538
// Test that fields of the wrong wire type are treated like unknown fields
541
ByteString bizarroData = getBizarroData();
542
TestAllTypes allTypesMessage = TestAllTypes.parseFrom(bizarroData);
543
UnittestLite.TestEmptyMessageLite emptyMessageLite =
544
UnittestLite.TestEmptyMessageLite.parseFrom(bizarroData);
545
ByteString data = emptyMessageLite.toByteString();
546
TestAllTypes allTypesMessage2 = TestAllTypes.parseFrom(data);
548
assertEquals(allTypesMessage.toString(), allTypesMessage2.toString());
551
public void testUnknownExtensionsLite() throws Exception {
552
// Make sure fields are properly parsed to the UnknownFieldSet even when
553
// they are declared as extension numbers.
555
UnittestLite.TestEmptyMessageWithExtensionsLite message =
556
UnittestLite.TestEmptyMessageWithExtensionsLite.parseFrom(allFieldsData);
558
assertEquals(allFieldsData, message.toByteString());
561
public void testWrongExtensionTypeTreatedAsUnknownLite() throws Exception {
562
// Test that fields of the wrong wire type are treated like unknown fields
563
// when parsing extensions.
565
ByteString bizarroData = getBizarroData();
566
TestAllExtensions allExtensionsMessage =
567
TestAllExtensions.parseFrom(bizarroData);
568
UnittestLite.TestEmptyMessageLite emptyMessageLite =
569
UnittestLite.TestEmptyMessageLite.parseFrom(bizarroData);
571
// All fields should have been interpreted as unknown, so the byte strings
572
// should be the same.
573
assertEquals(emptyMessageLite.toByteString(),
574
allExtensionsMessage.toByteString());
577
public void testParseUnknownEnumValueLite() throws Exception {
578
Descriptors.FieldDescriptor singularField =
579
TestAllTypes.getDescriptor().findFieldByName("optional_nested_enum");
580
Descriptors.FieldDescriptor repeatedField =
581
TestAllTypes.getDescriptor().findFieldByName("repeated_nested_enum");
582
assertNotNull(singularField);
583
assertNotNull(repeatedField);
586
UnknownFieldSet.newBuilder()
587
.addField(singularField.getNumber(),
588
UnknownFieldSet.Field.newBuilder()
589
.addVarint(TestAllTypes.NestedEnum.BAR.getNumber())
590
.addVarint(5) // not valid
592
.addField(repeatedField.getNumber(),
593
UnknownFieldSet.Field.newBuilder()
594
.addVarint(TestAllTypes.NestedEnum.FOO.getNumber())
595
.addVarint(4) // not valid
596
.addVarint(TestAllTypes.NestedEnum.BAZ.getNumber())
597
.addVarint(6) // not valid
602
UnittestLite.TestEmptyMessageLite emptyMessageLite =
603
UnittestLite.TestEmptyMessageLite.parseFrom(data);
604
data = emptyMessageLite.toByteString();
607
TestAllTypes message = TestAllTypes.parseFrom(data);
608
assertEquals(TestAllTypes.NestedEnum.BAR,
609
message.getOptionalNestedEnum());
611
Arrays.asList(TestAllTypes.NestedEnum.FOO, TestAllTypes.NestedEnum.BAZ),
612
message.getRepeatedNestedEnumList());
613
assertEquals(Arrays.asList(5L),
614
message.getUnknownFields()
615
.getField(singularField.getNumber())
617
assertEquals(Arrays.asList(4L, 6L),
618
message.getUnknownFields()
619
.getField(repeatedField.getNumber())
624
TestAllExtensions message =
625
TestAllExtensions.parseFrom(data, TestUtil.getExtensionRegistry());
626
assertEquals(TestAllTypes.NestedEnum.BAR,
627
message.getExtension(UnittestProto.optionalNestedEnumExtension));
629
Arrays.asList(TestAllTypes.NestedEnum.FOO, TestAllTypes.NestedEnum.BAZ),
630
message.getExtension(UnittestProto.repeatedNestedEnumExtension));
631
assertEquals(Arrays.asList(5L),
632
message.getUnknownFields()
633
.getField(singularField.getNumber())
635
assertEquals(Arrays.asList(4L, 6L),
636
message.getUnknownFields()
637
.getField(repeatedField.getNumber())
642
public void testClearLite() throws Exception {
643
UnittestLite.TestEmptyMessageLite emptyMessageLite1 =
644
UnittestLite.TestEmptyMessageLite.parseFrom(allFieldsData);
645
UnittestLite.TestEmptyMessageLite emptyMessageLite2 =
646
UnittestLite.TestEmptyMessageLite.newBuilder()
647
.mergeFrom(emptyMessageLite1).clear().build();
648
assertEquals(0, emptyMessageLite2.getSerializedSize());
649
ByteString data = emptyMessageLite2.toByteString();
650
assertEquals(0, data.size());