31 package com.google.protobuf;
33 import static org.junit.Assert.assertEquals;
34 import static org.junit.Assert.assertFalse;
35 import static org.junit.Assert.assertNull;
41 import java.util.List;
42 import org.junit.Before;
43 import org.junit.Test;
44 import org.junit.runner.RunWith;
45 import org.junit.runners.JUnit4;
47 @RunWith(JUnit4.class)
56 Protobuf.getInstance().schemaFor(Proto2MessageWithExtensions.class);
59 Proto2Testing.registerAllExtensions(extensionRegistry);
64 Proto2MessageWithExtensions
base =
65 Proto2MessageWithExtensions.parseFrom(
data, extensionRegistry);
67 Proto2MessageWithExtensions
message =
69 data, Proto2MessageWithExtensions.class, extensionRegistry);
72 Proto2MessageWithExtensions roundtripMessage =
75 Proto2MessageWithExtensions.class,
77 assertEquals(
base, roundtripMessage);
84 final int outOfRange = 1000;
85 assertNull(TestEnum.forNumber(outOfRange));
92 (
long) TestEnum.ONE_VALUE);
100 (
long) TestEnum.TWO_VALUE);
115 Proto2Message.FIELD_ENUM_LIST_PACKED_44_FIELD_NUMBER,
117 packedBuilder.build());
125 Proto2MessageWithExtensions parsed =
127 output, Proto2MessageWithExtensions.class, extensionRegistry);
129 "out-of-range singular enum should not be in message",
130 parsed.hasExtension(Proto2Testing.fieldEnum13));
132 List<Long> singularEnum =
135 .getField(Proto2Message.FIELD_ENUM_13_FIELD_NUMBER)
137 assertEquals(1, singularEnum.size());
138 assertEquals((Long) (
long) outOfRange, singularEnum.get(0));
141 List<Long> repeatedEnum =
144 .getField(Proto2Message.FIELD_ENUM_LIST_30_FIELD_NUMBER)
146 assertEquals(1, repeatedEnum.size());
147 assertEquals((Long) (
long) outOfRange, repeatedEnum.get(0));
150 List<Long> packedRepeatedEnum =
153 .getField(Proto2Message.FIELD_ENUM_LIST_PACKED_44_FIELD_NUMBER)
155 assertEquals(1, packedRepeatedEnum.size());
156 assertEquals((Long) (
long) outOfRange, packedRepeatedEnum.get(0));
159 "out-of-range repeated enum should not be in message",
161 parsed.getExtension(Proto2Testing.fieldEnumList30).size());
162 assertEquals(TestEnum.ONE, parsed.getExtension(Proto2Testing.fieldEnumList30, 0));
163 assertEquals(TestEnum.TWO, parsed.getExtension(Proto2Testing.fieldEnumList30, 1));
165 "out-of-range packed repeated enum should not be in message",
167 parsed.getExtension(Proto2Testing.fieldEnumListPacked44).size());
168 assertEquals(TestEnum.ONE, parsed.getExtension(Proto2Testing.fieldEnumListPacked44, 0));
169 assertEquals(TestEnum.TWO, parsed.getExtension(Proto2Testing.fieldEnumListPacked44, 1));