Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(240)

Side by Side Diff: third_party/protobuf/java/core/src/test/java/com/google/protobuf/LazyMessageLiteTest.java

Issue 2495533002: third_party/protobuf: Update to HEAD (83d681ee2c) (Closed)
Patch Set: Make chrome settings proto generated file a component Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Protocol Buffers - Google's data interchange format 1 // Protocol Buffers - Google's data interchange format
2 // Copyright 2008 Google Inc. All rights reserved. 2 // Copyright 2008 Google Inc. All rights reserved.
3 // https://developers.google.com/protocol-buffers/ 3 // https://developers.google.com/protocol-buffers/
4 // 4 //
5 // Redistribution and use in source and binary forms, with or without 5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are 6 // modification, are permitted provided that the following conditions are
7 // met: 7 // met:
8 // 8 //
9 // * Redistributions of source code must retain the above copyright 9 // * Redistributions of source code must retain the above copyright
10 // notice, this list of conditions and the following disclaimer. 10 // notice, this list of conditions and the following disclaimer.
(...skipping 16 matching lines...) Expand all
27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 30
31 package com.google.protobuf; 31 package com.google.protobuf;
32 32
33 import protobuf_unittest.LazyFieldsLite.LazyExtension; 33 import protobuf_unittest.LazyFieldsLite.LazyExtension;
34 import protobuf_unittest.LazyFieldsLite.LazyInnerMessageLite; 34 import protobuf_unittest.LazyFieldsLite.LazyInnerMessageLite;
35 import protobuf_unittest.LazyFieldsLite.LazyMessageLite; 35 import protobuf_unittest.LazyFieldsLite.LazyMessageLite;
36 import protobuf_unittest.LazyFieldsLite.LazyNestedInnerMessageLite; 36 import protobuf_unittest.LazyFieldsLite.LazyNestedInnerMessageLite;
37 37 import java.util.ArrayList;
38 import junit.framework.TestCase; 38 import junit.framework.TestCase;
39 39
40 import java.util.ArrayList;
41
42 /** 40 /**
43 * Unit test for messages with lazy fields. 41 * Unit test for messages with lazy fields.
44 * 42 *
45 * @author niwasaki@google.com (Naoki Iwasaki) 43 * @author niwasaki@google.com (Naoki Iwasaki)
46 */ 44 */
47 public class LazyMessageLiteTest extends TestCase { 45 public class LazyMessageLiteTest extends TestCase {
48 46
49 private Parser<LazyInnerMessageLite> originalLazyInnerMessageLiteParser; 47 private Parser<LazyInnerMessageLite> originalLazyInnerMessageLiteParser;
50 48
51 @Override 49 @Override
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 .setNum(1) 94 .setNum(1)
97 .addRepeatedInner(LazyInnerMessageLite.newBuilder().setNum(119)) 95 .addRepeatedInner(LazyInnerMessageLite.newBuilder().setNum(119))
98 .addRepeatedInner(LazyInnerMessageLite.newBuilder().setNum(122)) 96 .addRepeatedInner(LazyInnerMessageLite.newBuilder().setNum(122))
99 .build(); 97 .build();
100 98
101 assertEquals(1, outer.getNum()); 99 assertEquals(1, outer.getNum());
102 assertEquals(2, outer.getRepeatedInnerCount()); 100 assertEquals(2, outer.getRepeatedInnerCount());
103 assertEquals(119, outer.getRepeatedInner(0).getNum()); 101 assertEquals(119, outer.getRepeatedInner(0).getNum());
104 assertEquals(122, outer.getRepeatedInner(1).getNum()); 102 assertEquals(122, outer.getRepeatedInner(1).getNum());
105 } 103 }
104
105 public void testRepeatedMutability() throws Exception {
106 LazyMessageLite outer = LazyMessageLite.newBuilder()
107 .addRepeatedInner(LazyInnerMessageLite.newBuilder().setNum(119))
108 .addRepeatedInner(LazyInnerMessageLite.newBuilder().setNum(122))
109 .build();
110
111 outer = LazyMessageLite.parseFrom(outer.toByteArray());
112 try {
113 outer.getRepeatedInnerList().set(1, null);
114 fail();
115 } catch (UnsupportedOperationException expected) {}
116 }
106 117
107 public void testAddAll() { 118 public void testAddAll() {
108 ArrayList<LazyInnerMessageLite> inners = new ArrayList<LazyInnerMessageLite> (); 119 ArrayList<LazyInnerMessageLite> inners = new ArrayList<LazyInnerMessageLite> ();
109 int count = 4; 120 int count = 4;
110 for (int i = 0; i < count; i++) { 121 for (int i = 0; i < count; i++) {
111 LazyInnerMessageLite inner = LazyInnerMessageLite.newBuilder() 122 LazyInnerMessageLite inner = LazyInnerMessageLite.newBuilder()
112 .setNum(i) 123 .setNum(i)
113 .build(); 124 .build();
114 inners.add(inner); 125 inners.add(inner);
115 } 126 }
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 .build(); 255 .build();
245 // Merging default-instance shouldn't overwrite values in the base message. 256 // Merging default-instance shouldn't overwrite values in the base message.
246 assertEquals(119, merged.getNum()); 257 assertEquals(119, merged.getNum());
247 assertEquals(122, merged.getNumWithDefault()); 258 assertEquals(122, merged.getNumWithDefault());
248 assertEquals(115, merged.getInner().getNum()); 259 assertEquals(115, merged.getInner().getNum());
249 assertEquals(42, merged.getInner().getNumWithDefault()); 260 assertEquals(42, merged.getInner().getNumWithDefault());
250 assertEquals(115, merged.getOneofInner().getNum()); 261 assertEquals(115, merged.getOneofInner().getNum());
251 assertEquals(42, merged.getOneofInner().getNumWithDefault()); 262 assertEquals(42, merged.getOneofInner().getNumWithDefault());
252 } 263 }
253 264
265 // Regression test for b/28198805.
266 public void testMergeOneofMessages() throws Exception {
267 LazyInnerMessageLite inner = LazyInnerMessageLite.newBuilder().build();
268 LazyMessageLite outer = LazyMessageLite.newBuilder().setOneofInner(inner).bu ild();
269 ByteString data1 = outer.toByteString();
270
271 // The following should not alter the content of the 'outer' message.
272 LazyMessageLite.Builder merged = LazyMessageLite.newBuilder().mergeFrom(oute r);
273 LazyInnerMessageLite anotherInner = LazyInnerMessageLite.newBuilder().setNum (12345).build();
274 merged.setOneofInner(anotherInner);
275
276 // Check that the 'outer' stays the same.
277 ByteString data2 = outer.toByteString();
278 assertEquals(data1, data2);
279 assertEquals(0, outer.getOneofInner().getNum());
280 }
281
254 public void testSerialize() throws InvalidProtocolBufferException { 282 public void testSerialize() throws InvalidProtocolBufferException {
255 LazyNestedInnerMessageLite nested = LazyNestedInnerMessageLite.newBuilder() 283 LazyNestedInnerMessageLite nested = LazyNestedInnerMessageLite.newBuilder()
256 .setNum(3) 284 .setNum(3)
257 .build(); 285 .build();
258 LazyInnerMessageLite inner = LazyInnerMessageLite.newBuilder() 286 LazyInnerMessageLite inner = LazyInnerMessageLite.newBuilder()
259 .setNum(2) 287 .setNum(2)
260 .setNested(nested) 288 .setNested(nested)
261 .build(); 289 .build();
262 LazyMessageLite outer = LazyMessageLite.newBuilder() 290 LazyMessageLite outer = LazyMessageLite.newBuilder()
263 .setNum(1) 291 .setNum(1)
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 LazyInnerMessageLite innerMessage = innerBuilder.build(); 326 LazyInnerMessageLite innerMessage = innerBuilder.build();
299 assertTrue(innerMessage.hasExtension(LazyExtension.extension)); 327 assertTrue(innerMessage.hasExtension(LazyExtension.extension));
300 assertEquals("name", innerMessage.getExtension(LazyExtension.extension).getN ame()); 328 assertEquals("name", innerMessage.getExtension(LazyExtension.extension).getN ame());
301 329
302 LazyMessageLite lite = LazyMessageLite.newBuilder() 330 LazyMessageLite lite = LazyMessageLite.newBuilder()
303 .setInner(innerMessage).build(); 331 .setInner(innerMessage).build();
304 assertTrue(lite.getInner().hasExtension(LazyExtension.extension)); 332 assertTrue(lite.getInner().hasExtension(LazyExtension.extension));
305 assertEquals("name", lite.getInner().getExtension(LazyExtension.extension).g etName()); 333 assertEquals("name", lite.getInner().getExtension(LazyExtension.extension).g etName());
306 } 334 }
307 } 335 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698