|
@@ -2780,24 +2780,58 @@ public class NanoTest extends TestCase {
|
|
|
RepeatedExtensions.RepeatedGroup group2 = new RepeatedExtensions.RepeatedGroup();
|
|
|
group2.a = 32;
|
|
|
RepeatedExtensions.RepeatedGroup[] groups = {group1, group2};
|
|
|
+ assertFalse(message.hasExtension(RepeatedExtensions.repeatedInt32));
|
|
|
message.setExtension(RepeatedExtensions.repeatedInt32, int32s);
|
|
|
+ assertTrue(message.hasExtension(RepeatedExtensions.repeatedInt32));
|
|
|
+ assertFalse(message.hasExtension(RepeatedExtensions.repeatedUint32));
|
|
|
message.setExtension(RepeatedExtensions.repeatedUint32, uint32s);
|
|
|
+ assertTrue(message.hasExtension(RepeatedExtensions.repeatedUint32));
|
|
|
message.setExtension(RepeatedExtensions.repeatedSint32, sint32s);
|
|
|
+ assertFalse(message.hasExtension(RepeatedExtensions.repeatedInt64));
|
|
|
message.setExtension(RepeatedExtensions.repeatedInt64, int64s);
|
|
|
+ assertTrue(message.hasExtension(RepeatedExtensions.repeatedInt64));
|
|
|
+ assertFalse(message.hasExtension(RepeatedExtensions.repeatedUint64));
|
|
|
message.setExtension(RepeatedExtensions.repeatedUint64, uint64s);
|
|
|
+ assertTrue(message.hasExtension(RepeatedExtensions.repeatedUint64));
|
|
|
+ assertFalse(message.hasExtension(RepeatedExtensions.repeatedSint64));
|
|
|
message.setExtension(RepeatedExtensions.repeatedSint64, sint64s);
|
|
|
+ assertTrue(message.hasExtension(RepeatedExtensions.repeatedSint64));
|
|
|
+ assertFalse(message.hasExtension(RepeatedExtensions.repeatedFixed32));
|
|
|
message.setExtension(RepeatedExtensions.repeatedFixed32, fixed32s);
|
|
|
+ assertTrue(message.hasExtension(RepeatedExtensions.repeatedFixed32));
|
|
|
+ assertFalse(message.hasExtension(RepeatedExtensions.repeatedSfixed32));
|
|
|
message.setExtension(RepeatedExtensions.repeatedSfixed32, sfixed32s);
|
|
|
+ assertTrue(message.hasExtension(RepeatedExtensions.repeatedSfixed32));
|
|
|
+ assertFalse(message.hasExtension(RepeatedExtensions.repeatedFixed64));
|
|
|
message.setExtension(RepeatedExtensions.repeatedFixed64, fixed64s);
|
|
|
+ assertTrue(message.hasExtension(RepeatedExtensions.repeatedFixed64));
|
|
|
+ assertFalse(message.hasExtension(RepeatedExtensions.repeatedSfixed64));
|
|
|
message.setExtension(RepeatedExtensions.repeatedSfixed64, sfixed64s);
|
|
|
+ assertTrue(message.hasExtension(RepeatedExtensions.repeatedSfixed64));
|
|
|
+ assertFalse(message.hasExtension(RepeatedExtensions.repeatedBool));
|
|
|
message.setExtension(RepeatedExtensions.repeatedBool, bools);
|
|
|
+ assertTrue(message.hasExtension(RepeatedExtensions.repeatedBool));
|
|
|
+ assertFalse(message.hasExtension(RepeatedExtensions.repeatedFloat));
|
|
|
message.setExtension(RepeatedExtensions.repeatedFloat, floats);
|
|
|
+ assertTrue(message.hasExtension(RepeatedExtensions.repeatedFloat));
|
|
|
+ assertFalse(message.hasExtension(RepeatedExtensions.repeatedDouble));
|
|
|
message.setExtension(RepeatedExtensions.repeatedDouble, doubles);
|
|
|
+ assertTrue(message.hasExtension(RepeatedExtensions.repeatedDouble));
|
|
|
+ assertFalse(message.hasExtension(RepeatedExtensions.repeatedEnum));
|
|
|
message.setExtension(RepeatedExtensions.repeatedEnum, enums);
|
|
|
+ assertTrue(message.hasExtension(RepeatedExtensions.repeatedEnum));
|
|
|
+ assertFalse(message.hasExtension(RepeatedExtensions.repeatedString));
|
|
|
message.setExtension(RepeatedExtensions.repeatedString, strings);
|
|
|
+ assertTrue(message.hasExtension(RepeatedExtensions.repeatedString));
|
|
|
+ assertFalse(message.hasExtension(RepeatedExtensions.repeatedBytes));
|
|
|
message.setExtension(RepeatedExtensions.repeatedBytes, bytess);
|
|
|
+ assertTrue(message.hasExtension(RepeatedExtensions.repeatedBytes));
|
|
|
+ assertFalse(message.hasExtension(RepeatedExtensions.repeatedMessage));
|
|
|
message.setExtension(RepeatedExtensions.repeatedMessage, messages);
|
|
|
+ assertTrue(message.hasExtension(RepeatedExtensions.repeatedMessage));
|
|
|
+ assertFalse(message.hasExtension(RepeatedExtensions.repeatedGroup));
|
|
|
message.setExtension(RepeatedExtensions.repeatedGroup, groups);
|
|
|
+ assertTrue(message.hasExtension(RepeatedExtensions.repeatedGroup));
|
|
|
|
|
|
byte[] data = MessageNano.toByteArray(message);
|
|
|
message = Extensions.ExtendableMessage.parseFrom(data);
|
|
@@ -2861,10 +2895,26 @@ public class NanoTest extends TestCase {
|
|
|
assertEquals(group1.a, deserializedRepeatedGroup[0].a);
|
|
|
assertEquals(group2.a, deserializedRepeatedGroup[1].a);
|
|
|
|
|
|
- // Test reading back using PackedExtensions: the arrays should be equal, even the fields
|
|
|
- // are non-packed.
|
|
|
message = Extensions.ExtendableMessage.parseFrom(data);
|
|
|
assertEquals(5, message.field);
|
|
|
+ // Test hasExtension using PackedExtensions.
|
|
|
+ assertTrue(message.hasExtension(PackedExtensions.packedInt32));
|
|
|
+ assertTrue(message.hasExtension(PackedExtensions.packedUint32));
|
|
|
+ assertTrue(message.hasExtension(PackedExtensions.packedSint32));
|
|
|
+ assertTrue(message.hasExtension(PackedExtensions.packedInt64));
|
|
|
+ assertTrue(message.hasExtension(PackedExtensions.packedUint64));
|
|
|
+ assertTrue(message.hasExtension(PackedExtensions.packedSint64));
|
|
|
+ assertTrue(message.hasExtension(PackedExtensions.packedFixed32));
|
|
|
+ assertTrue(message.hasExtension(PackedExtensions.packedSfixed32));
|
|
|
+ assertTrue(message.hasExtension(PackedExtensions.packedFixed64));
|
|
|
+ assertTrue(message.hasExtension(PackedExtensions.packedSfixed64));
|
|
|
+ assertTrue(message.hasExtension(PackedExtensions.packedBool));
|
|
|
+ assertTrue(message.hasExtension(PackedExtensions.packedFloat));
|
|
|
+ assertTrue(message.hasExtension(PackedExtensions.packedDouble));
|
|
|
+ assertTrue(message.hasExtension(PackedExtensions.packedEnum));
|
|
|
+
|
|
|
+ // Test reading back using PackedExtensions: the arrays should be equal, even the fields
|
|
|
+ // are non-packed.
|
|
|
assertTrue(Arrays.equals(int32s, message.getExtension(PackedExtensions.packedInt32)));
|
|
|
assertTrue(Arrays.equals(uint32s, message.getExtension(PackedExtensions.packedUint32)));
|
|
|
assertTrue(Arrays.equals(sint32s, message.getExtension(PackedExtensions.packedSint32)));
|
|
@@ -2918,14 +2968,19 @@ public class NanoTest extends TestCase {
|
|
|
public void testNullExtensions() throws Exception {
|
|
|
// Check that clearing the extension on an empty message is a no-op.
|
|
|
Extensions.ExtendableMessage message = new Extensions.ExtendableMessage();
|
|
|
+ assertFalse(message.hasExtension(SingularExtensions.someMessage));
|
|
|
message.setExtension(SingularExtensions.someMessage, null);
|
|
|
+ assertFalse(message.hasExtension(SingularExtensions.someMessage));
|
|
|
assertEquals(0, MessageNano.toByteArray(message).length);
|
|
|
|
|
|
// Check that the message is empty after setting and clearing an extension.
|
|
|
AnotherMessage another = new AnotherMessage();
|
|
|
+ assertFalse(message.hasExtension(SingularExtensions.someMessage));
|
|
|
message.setExtension(SingularExtensions.someMessage, another);
|
|
|
+ assertTrue(message.hasExtension(SingularExtensions.someMessage));
|
|
|
assertTrue(MessageNano.toByteArray(message).length > 0);
|
|
|
message.setExtension(SingularExtensions.someMessage, null);
|
|
|
+ assertFalse(message.hasExtension(SingularExtensions.someMessage));
|
|
|
assertEquals(0, MessageNano.toByteArray(message).length);
|
|
|
}
|
|
|
|