31 package com.google.protobuf;
37 import java.util.ArrayList;
38 import junit.framework.TestCase;
48 protected void setUp() throws Exception {
58 LazyNestedInnerMessageLite nested = LazyNestedInnerMessageLite.newBuilder().setNum(3).build();
59 LazyInnerMessageLite inner =
60 LazyInnerMessageLite.newBuilder().setNum(2).setNested(nested).build();
61 LazyMessageLite outer =
62 LazyMessageLite.newBuilder()
69 assertEquals(1, outer.getNum());
70 assertEquals(421, outer.getNumWithDefault());
72 assertEquals(2, outer.getInner().getNum());
73 assertEquals(42, outer.getInner().getNumWithDefault());
75 assertEquals(3, outer.getInner().getNested().getNum());
76 assertEquals(4, outer.getInner().getNested().getNumWithDefault());
78 assertFalse(outer.hasOneofNum());
79 assertTrue(outer.hasOneofInner());
81 assertEquals(2, outer.getOneofInner().getNum());
82 assertEquals(42, outer.getOneofInner().getNumWithDefault());
83 assertEquals(3, outer.getOneofInner().getNested().getNum());
84 assertEquals(4, outer.getOneofInner().getNested().getNumWithDefault());
88 LazyMessageLite outer =
89 LazyMessageLite.newBuilder()
91 .addRepeatedInner(LazyInnerMessageLite.newBuilder().setNum(119))
92 .addRepeatedInner(LazyInnerMessageLite.newBuilder().setNum(122))
95 assertEquals(1, outer.getNum());
96 assertEquals(2, outer.getRepeatedInnerCount());
97 assertEquals(119, outer.getRepeatedInner(0).getNum());
98 assertEquals(122, outer.getRepeatedInner(1).getNum());
102 LazyMessageLite outer =
103 LazyMessageLite.newBuilder()
104 .addRepeatedInner(LazyInnerMessageLite.newBuilder().setNum(119))
105 .addRepeatedInner(LazyInnerMessageLite.newBuilder().setNum(122))
108 outer = LazyMessageLite.parseFrom(outer.toByteArray());
110 outer.getRepeatedInnerList().set(1,
null);
112 }
catch (UnsupportedOperationException expected) {
117 ArrayList<LazyInnerMessageLite> inners =
new ArrayList<>();
120 LazyInnerMessageLite inner = LazyInnerMessageLite.newBuilder().setNum(
i).build();
124 LazyMessageLite outer = LazyMessageLite.newBuilder().addAllRepeatedInner(inners).build();
125 assertEquals(
count, outer.getRepeatedInnerCount());
127 assertEquals(
i, outer.getRepeatedInner(
i).getNum());
132 LazyMessageLite outer = LazyMessageLite.getDefaultInstance();
134 assertEquals(0, outer.getNum());
135 assertEquals(421, outer.getNumWithDefault());
137 assertEquals(0, outer.getInner().getNum());
138 assertEquals(42, outer.getInner().getNumWithDefault());
140 assertEquals(0, outer.getInner().getNested().getNum());
141 assertEquals(4, outer.getInner().getNested().getNumWithDefault());
143 assertEquals(0, outer.getOneofNum());
145 assertEquals(0, outer.getOneofInner().getNum());
146 assertEquals(42, outer.getOneofInner().getNumWithDefault());
147 assertEquals(0, outer.getOneofInner().getNested().getNum());
148 assertEquals(4, outer.getOneofInner().getNested().getNumWithDefault());
152 LazyInnerMessageLite inner = LazyInnerMessageLite.newBuilder().setNum(115).build();
154 LazyMessageLite.Builder outerBuilder = LazyMessageLite.newBuilder();
156 assertEquals(0, outerBuilder.build().getNum());
159 outerBuilder.setNum(100);
161 assertEquals(100, outerBuilder.build().getNum());
162 assertEquals(421, outerBuilder.build().getNumWithDefault());
163 assertFalse(outerBuilder.build().hasInner());
165 outerBuilder.clearNum();
167 assertEquals(0, outerBuilder.build().getNum());
168 assertEquals(421, outerBuilder.build().getNumWithDefault());
169 assertFalse(outerBuilder.build().hasInner());
175 .addRepeatedInner(LazyInnerMessageLite.newBuilder().setNum(119))
176 .addRepeatedInner(LazyInnerMessageLite.newBuilder().setNum(122))
177 .setOneofInner(LazyInnerMessageLite.newBuilder().setNum(123));
179 LazyMessageLite outer = outerBuilder.build();
180 assertEquals(100, outer.getNum());
181 assertEquals(421, outer.getNumWithDefault());
182 assertTrue(outer.hasInner());
183 assertEquals(115, outer.getInner().getNum());
184 assertEquals(2, outer.getRepeatedInnerCount());
185 assertEquals(119, outer.getRepeatedInner(0).getNum());
186 assertEquals(122, outer.getRepeatedInner(1).getNum());
187 assertTrue(outer.hasOneofInner());
188 assertEquals(123, outer.getOneofInner().getNum());
190 outerBuilder.clear();
192 outer = outerBuilder.build();
194 assertEquals(0, outer.getNum());
195 assertEquals(421, outer.getNumWithDefault());
196 assertFalse(outer.hasInner());
197 assertEquals(0, outer.getRepeatedInnerCount());
198 assertFalse(outer.hasOneofInner());
199 assertEquals(0, outer.getOneofInner().getNum());
203 LazyMessageLite outerBase = LazyMessageLite.newBuilder().setNumWithDefault(122).build();
205 LazyInnerMessageLite innerMerging = LazyInnerMessageLite.newBuilder().setNum(115).build();
206 LazyMessageLite outerMerging =
207 LazyMessageLite.newBuilder()
209 .setInner(innerMerging)
210 .setOneofInner(innerMerging)
213 LazyMessageLite
merged = LazyMessageLite.newBuilder(outerBase).mergeFrom(outerMerging).build();
214 assertEquals(119,
merged.getNum());
215 assertEquals(122,
merged.getNumWithDefault());
216 assertEquals(115,
merged.getInner().getNum());
217 assertEquals(42,
merged.getInner().getNumWithDefault());
218 assertEquals(115,
merged.getOneofInner().getNum());
219 assertEquals(42,
merged.getOneofInner().getNumWithDefault());
223 LazyInnerMessageLite innerBase = LazyInnerMessageLite.newBuilder().setNum(115).build();
224 LazyMessageLite outerBase =
225 LazyMessageLite.newBuilder()
227 .setNumWithDefault(122)
229 .setOneofInner(innerBase)
232 LazyMessageLite outerMerging = LazyMessageLite.getDefaultInstance();
234 LazyMessageLite
merged = LazyMessageLite.newBuilder(outerBase).mergeFrom(outerMerging).build();
236 assertEquals(119,
merged.getNum());
237 assertEquals(122,
merged.getNumWithDefault());
238 assertEquals(115,
merged.getInner().getNum());
239 assertEquals(42,
merged.getInner().getNumWithDefault());
240 assertEquals(115,
merged.getOneofInner().getNum());
241 assertEquals(42,
merged.getOneofInner().getNumWithDefault());
246 LazyInnerMessageLite inner = LazyInnerMessageLite.getDefaultInstance();
247 LazyMessageLite outer = LazyMessageLite.newBuilder().setOneofInner(inner).build();
251 LazyMessageLite.Builder
merged = LazyMessageLite.newBuilder().mergeFrom(outer);
252 LazyInnerMessageLite anotherInner = LazyInnerMessageLite.newBuilder().setNum(12345).build();
253 merged.setOneofInner(anotherInner);
257 assertEquals(data1, data2);
258 assertEquals(0, outer.getOneofInner().getNum());
262 LazyNestedInnerMessageLite nested = LazyNestedInnerMessageLite.newBuilder().setNum(3).build();
263 LazyInnerMessageLite inner =
264 LazyInnerMessageLite.newBuilder().setNum(2).setNested(nested).build();
265 LazyMessageLite outer =
266 LazyMessageLite.newBuilder().setNum(1).setInner(inner).setOneofInner(inner).build();
269 assertEquals(
bytes.size(), outer.getSerializedSize());
271 LazyMessageLite deserialized = LazyMessageLite.parseFrom(
bytes);
273 assertEquals(1, deserialized.getNum());
274 assertEquals(421, deserialized.getNumWithDefault());
276 assertEquals(2, deserialized.getInner().getNum());
277 assertEquals(42, deserialized.getInner().getNumWithDefault());
279 assertEquals(3, deserialized.getInner().getNested().getNum());
280 assertEquals(4, deserialized.getInner().getNested().getNumWithDefault());
282 assertEquals(2, deserialized.getOneofInner().getNum());
283 assertEquals(42, deserialized.getOneofInner().getNumWithDefault());
284 assertEquals(3, deserialized.getOneofInner().getNested().getNum());
285 assertEquals(4, deserialized.getOneofInner().getNested().getNumWithDefault());
287 assertEquals(
bytes, deserialized.toByteString());
291 LazyInnerMessageLite.Builder innerBuilder = LazyInnerMessageLite.newBuilder();
292 innerBuilder.setExtension(
293 LazyExtension.extension, LazyExtension.newBuilder().setName(
"name").build());
294 assertTrue(innerBuilder.hasExtension(LazyExtension.extension));
295 assertEquals(
"name", innerBuilder.getExtension(LazyExtension.extension).getName());
297 LazyInnerMessageLite innerMessage = innerBuilder.build();
298 assertTrue(innerMessage.hasExtension(LazyExtension.extension));
299 assertEquals(
"name", innerMessage.getExtension(LazyExtension.extension).getName());
301 LazyMessageLite lite = LazyMessageLite.newBuilder().setInner(innerMessage).build();
302 assertTrue(lite.getInner().hasExtension(LazyExtension.extension));
303 assertEquals(
"name", lite.getInner().getExtension(LazyExtension.extension).getName());