NanoTest.java revision beb57e08a44a140bf52235717f1f907ca857f360
164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// Protocol Buffers - Google's data interchange format 264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// Copyright 2013 Google Inc. All rights reserved. 364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// http://code.google.com/p/protobuf/ 464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// 564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// Redistribution and use in source and binary forms, with or without 664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// modification, are permitted provided that the following conditions are 764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// met: 864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// 964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// * Redistributions of source code must retain the above copyright 1064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// notice, this list of conditions and the following disclaimer. 1164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// * Redistributions in binary form must reproduce the above 1264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// copyright notice, this list of conditions and the following disclaimer 1364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// in the documentation and/or other materials provided with the 1464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// distribution. 1564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// * Neither the name of Google Inc. nor the names of its 1664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// contributors may be used to endorse or promote products derived from 1764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// this software without specific prior written permission. 1864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// 1964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 2064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 2164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 2264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 2364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 2464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 2564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 2964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 3064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 3164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazcipackage com.google.protobuf; 3264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 330e055f079f53b07de3705838a7b4742ce56839f8Brian Duffimport com.google.protobuf.nano.CodedInputByteBufferNano; 3426266cd4660ffe1f3d6015b715713ee654c5b936Max Caiimport com.google.protobuf.nano.EnumClassNanoMultiple; 3526266cd4660ffe1f3d6015b715713ee654c5b936Max Caiimport com.google.protobuf.nano.EnumClassNanos; 360e055f079f53b07de3705838a7b4742ce56839f8Brian Duffimport com.google.protobuf.nano.Extensions; 370e055f079f53b07de3705838a7b4742ce56839f8Brian Duffimport com.google.protobuf.nano.Extensions.AnotherMessage; 3837ac79028de3d1cd8c215ba54fdf31e4eeca4b2cNicholas Seckarimport com.google.protobuf.nano.Extensions.MessageWithGroup; 3926266cd4660ffe1f3d6015b715713ee654c5b936Max Caiimport com.google.protobuf.nano.FileScopeEnumMultiple; 40624c448fbef20a1a2fad2289f622b468c25763d1Max Caiimport com.google.protobuf.nano.FileScopeEnumRefNano; 4164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazciimport com.google.protobuf.nano.InternalNano; 4264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazciimport com.google.protobuf.nano.MessageNano; 43624c448fbef20a1a2fad2289f622b468c25763d1Max Caiimport com.google.protobuf.nano.MessageScopeEnumRefNano; 448170787391efcb6cc6a8babc1cce35d5b1aff420Max Caiimport com.google.protobuf.nano.MultipleImportingNonMultipleNano1; 458170787391efcb6cc6a8babc1cce35d5b1aff420Max Caiimport com.google.protobuf.nano.MultipleImportingNonMultipleNano2; 46624c448fbef20a1a2fad2289f622b468c25763d1Max Caiimport com.google.protobuf.nano.MultipleNameClashNano; 47e74fe623e115237968a3de1143d7cdb4df710858Max Caiimport com.google.protobuf.nano.NanoAccessorsOuterClass.TestNanoAccessors; 4835d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazciimport com.google.protobuf.nano.NanoHasOuterClass.TestAllTypesNanoHas; 4964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazciimport com.google.protobuf.nano.NanoOuterClass; 5064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazciimport com.google.protobuf.nano.NanoOuterClass.TestAllTypesNano; 510b8579237336f221711a0aac42400eb31a58fed3Brian Duffimport com.google.protobuf.nano.NanoReferenceTypes; 52334a7d1117a576bc6010c14677fb6444639c1ddaMax Caiimport com.google.protobuf.nano.TestRepeatedMergeNano; 5364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazciimport com.google.protobuf.nano.UnittestImportNano; 54624c448fbef20a1a2fad2289f622b468c25763d1Max Caiimport com.google.protobuf.nano.UnittestMultipleNano; 55624c448fbef20a1a2fad2289f622b468c25763d1Max Caiimport com.google.protobuf.nano.UnittestRecursiveNano.RecursiveMessageNano; 56624c448fbef20a1a2fad2289f622b468c25763d1Max Caiimport com.google.protobuf.nano.UnittestSimpleNano.SimpleMessageNano; 57624c448fbef20a1a2fad2289f622b468c25763d1Max Caiimport com.google.protobuf.nano.UnittestSingleNano.SingleMessageNano; 5864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 5964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazciimport junit.framework.TestCase; 6064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 610e055f079f53b07de3705838a7b4742ce56839f8Brian Duffimport java.util.ArrayList; 6214dd1f02ac95f61087e311bf61c85047fb218a29Ulas Kirazciimport java.util.Arrays; 63ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duffimport java.util.HashMap; 640e055f079f53b07de3705838a7b4742ce56839f8Brian Duffimport java.util.List; 650e055f079f53b07de3705838a7b4742ce56839f8Brian Duff 6664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci/** 6764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci * Test nano runtime. 6864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci * 6964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci * @author ulas@google.com Ulas Kirazci 7064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci */ 7164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazcipublic class NanoTest extends TestCase { 72e74fe623e115237968a3de1143d7cdb4df710858Max Cai @Override 7364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void setUp() throws Exception { 7464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 7564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 7664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testSimpleMessageNano() throws Exception { 7764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci SimpleMessageNano msg = new SimpleMessageNano(); 7864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, msg.d); 7964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(null, msg.nestedMsg); 8064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(SimpleMessageNano.BAZ, msg.defaultNestedEnum); 8164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 8264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.d = 456; 8364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.d); 8464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 8564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci SimpleMessageNano.NestedMessage nestedMsg = new SimpleMessageNano.NestedMessage(); 8664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci nestedMsg.bb = 2; 8764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, nestedMsg.bb); 8864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.nestedMsg = nestedMsg; 8964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.nestedMsg.bb); 9064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 9164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.defaultNestedEnum = SimpleMessageNano.BAR; 9264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(SimpleMessageNano.BAR, msg.defaultNestedEnum); 9364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 9464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 9564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 9664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 9764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 9); 9864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 9964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 10064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci SimpleMessageNano newMsg = SimpleMessageNano.parseFrom(result); 10164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, newMsg.d); 10264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.nestedMsg.bb); 10364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(SimpleMessageNano.BAR, msg.defaultNestedEnum); 10464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 10564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 10664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testRecursiveMessageNano() throws Exception { 10764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci RecursiveMessageNano msg = new RecursiveMessageNano(); 10864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msg.repeatedRecursiveMessageNano.length == 0); 10964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 11064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci RecursiveMessageNano msg1 = new RecursiveMessageNano(); 11164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg1.id = 1; 11264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg1.id); 11364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci RecursiveMessageNano msg2 = new RecursiveMessageNano(); 11464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg2.id = 2; 11564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci RecursiveMessageNano msg3 = new RecursiveMessageNano(); 11664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg3.id = 3; 11764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 11864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci RecursiveMessageNano.NestedMessage nestedMsg = new RecursiveMessageNano.NestedMessage(); 11964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci nestedMsg.a = msg1; 12064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, nestedMsg.a.id); 12164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 12264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.id = 0; 12364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.nestedMessage = nestedMsg; 12464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalRecursiveMessageNano = msg2; 12564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedRecursiveMessageNano = new RecursiveMessageNano[] { msg3 }; 12664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 12764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 12864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 12964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 13064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 16); 13164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 13264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 13364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci RecursiveMessageNano newMsg = RecursiveMessageNano.parseFrom(result); 13464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedRecursiveMessageNano.length); 13564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 13664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, newMsg.id); 13764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.nestedMessage.a.id); 13864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.optionalRecursiveMessageNano.id); 13964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(3, newMsg.repeatedRecursiveMessageNano[0].id); 14064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 14164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 14264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRequiredInt32() throws Exception { 14364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 14464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.id = 123; 14564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, msg.id); 14664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear().id = 456; 14764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.id); 14864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 14964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 15064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.id = 123; 15164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 15264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 15364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 15464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 3); 15564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 15664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 15764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 15864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.id); 15964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 16064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 16164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoOptionalInt32() throws Exception { 16264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 16364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalInt32 = 123; 16464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, msg.optionalInt32); 16564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 16664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .optionalInt32 = 456; 16764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.optionalInt32); 16864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 16964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 17064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalInt32 = 123; 17164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 17264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 17364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 17464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 5); 17564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 17664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 17764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 17864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.optionalInt32); 17964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 18064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 18164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoOptionalInt64() throws Exception { 18264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 18364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalInt64 = 123; 18464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, msg.optionalInt64); 18564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 18664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .optionalInt64 = 456; 18764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.optionalInt64); 18864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 18964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.optionalInt64); 19064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 19164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalInt64 = 123; 19264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 19364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 19464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 19564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 5); 19664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 19764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 19864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 19964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.optionalInt64); 20064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 20164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 20264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoOptionalUint32() throws Exception { 20364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 20464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalUint32 = 123; 20564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, msg.optionalUint32); 20664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 20764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .optionalUint32 = 456; 20864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.optionalUint32); 20964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 21064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.optionalUint32); 21164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 21264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalUint32 = 123; 21364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 21464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 21564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 21664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 5); 21764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 21864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 21964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 22064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.optionalUint32); 22164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 22264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 22364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoOptionalUint64() throws Exception { 22464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 22564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalUint64 = 123; 22664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, msg.optionalUint64); 22764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 22864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .optionalUint64 = 456; 22964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.optionalUint64); 23064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 23164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.optionalUint64); 23264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 23364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalUint64 = 123; 23464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 23564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 23664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 23764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 5); 23864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 23964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 24064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 24164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.optionalUint64); 24264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 24364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 24464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoOptionalSint32() throws Exception { 24564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 24664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalSint32 = 123; 24764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, msg.optionalSint32); 24864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 24964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .optionalSint32 = 456; 25064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.optionalSint32); 25164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 25264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.optionalSint32); 25364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 25464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalSint32 = -123; 25564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 25664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 25764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 25864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 6); 25964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 26064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 26164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 26264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(-123, newMsg.optionalSint32); 26364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 26464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 26564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoOptionalSint64() throws Exception { 26664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 26764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalSint64 = 123; 26864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, msg.optionalSint64); 26964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 27064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .optionalSint64 = 456; 27164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.optionalSint64); 27264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 27364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.optionalSint64); 27464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 27564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalSint64 = -123; 27664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 27764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 27864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 27964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 6); 28064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 28164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 28264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 28364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(-123, newMsg.optionalSint64); 28464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 28564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 28664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoOptionalFixed32() throws Exception { 28764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 28864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalFixed32 = 123; 28964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, msg.optionalFixed32); 29064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 29164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .optionalFixed32 = 456; 29264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.optionalFixed32); 29364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 29464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.optionalFixed32); 29564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 29664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalFixed32 = 123; 29764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 29864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 29964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 30064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 8); 30164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 30264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 30364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 30464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.optionalFixed32); 30564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 30664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 30764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoOptionalFixed64() throws Exception { 30864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 30964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalFixed64 = 123; 31064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, msg.optionalFixed64); 31164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 31264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .optionalFixed64 = 456; 31364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.optionalFixed64); 31464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 31564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.optionalFixed64); 31664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 31764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalFixed64 = 123; 31864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 31964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 32064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 32164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 12); 32264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 32364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 32464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 32564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.optionalFixed64); 32664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 32764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 32864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoOptionalSfixed32() throws Exception { 32964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 33064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalSfixed32 = 123; 33164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, msg.optionalSfixed32); 33264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 33364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .optionalSfixed32 = 456; 33464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.optionalSfixed32); 33564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 33664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.optionalSfixed32); 33764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 33864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalSfixed32 = 123; 33964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 34064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 34164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 34264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 8); 34364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 34464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 34564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 34664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.optionalSfixed32); 34764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 34864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 34964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoOptionalSfixed64() throws Exception { 35064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 35164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalSfixed64 = 123; 35264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, msg.optionalSfixed64); 35364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 35464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .optionalSfixed64 = 456; 35564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.optionalSfixed64); 35664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 35764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.optionalSfixed64); 35864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 35964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalSfixed64 = -123; 36064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 36164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 36264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 36364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 12); 36464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 36564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 36664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 36764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(-123, newMsg.optionalSfixed64); 36864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 36964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 37064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoOptionalFloat() throws Exception { 37164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 37264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalFloat = 123f; 37364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(123.0f == msg.optionalFloat); 37464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 37564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .optionalFloat = 456.0f; 37664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(456.0f == msg.optionalFloat); 37764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 37864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(0.0f == msg.optionalFloat); 37964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 38064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalFloat = -123.456f; 38164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 38264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 38364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 38464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 8); 38564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 38664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 38764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 38864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(-123.456f == newMsg.optionalFloat); 38964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 39064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 39164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoOptionalDouble() throws Exception { 39264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 39364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalDouble = 123; 39464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(123.0 == msg.optionalDouble); 39564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 39664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .optionalDouble = 456.0; 39764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(456.0 == msg.optionalDouble); 39864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 39964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(0.0 == msg.optionalDouble); 40064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 40164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalDouble = -123.456; 40264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 40364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 40464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 40564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 12); 40664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 40764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 40864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 40964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(-123.456 == newMsg.optionalDouble); 41064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 41164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 41264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoOptionalBool() throws Exception { 41364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 41464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalBool = true; 41564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msg.optionalBool); 41664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 41764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .optionalBool = true; 41864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msg.optionalBool); 41964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 42064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertFalse(msg.optionalBool); 42164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 42264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalBool = true; 42364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 42464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 42564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 42664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 5); 42764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 42864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 42964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 43064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(newMsg.optionalBool); 43164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 43264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 43364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoOptionalString() throws Exception { 43464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 43564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalString = "hello"; 43664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("hello", msg.optionalString); 43764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 43864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msg.optionalString.isEmpty()); 43964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 44064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .optionalString = "hello2"; 44164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("hello2", msg.optionalString); 44264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 44364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msg.optionalString.isEmpty()); 44464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 44564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalString = "bye"; 44664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 44764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 44864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 44964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 8); 45064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 45164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 45264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 45364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(newMsg.optionalString != null); 45464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("bye", newMsg.optionalString); 45564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 45664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 45764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoOptionalBytes() throws Exception { 45864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 45964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertFalse(msg.optionalBytes.length > 0); 46064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalBytes = InternalNano.copyFromUtf8("hello"); 46164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msg.optionalBytes.length > 0); 46264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("hello", new String(msg.optionalBytes, "UTF-8")); 46364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 46464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertFalse(msg.optionalBytes.length > 0); 46564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 46664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .optionalBytes = InternalNano.copyFromUtf8("hello"); 46764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msg.optionalBytes.length > 0); 46864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 46964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertFalse(msg.optionalBytes.length > 0); 47064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 47164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalBytes = InternalNano.copyFromUtf8("bye"); 47264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 47364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 47464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 47564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 8); 47664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 47764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 47864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 47964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(newMsg.optionalBytes.length > 0); 48064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("bye", new String(newMsg.optionalBytes, "UTF-8")); 48164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 48264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 48364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoOptionalGroup() throws Exception { 48464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 48564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano.OptionalGroup grp = new TestAllTypesNano.OptionalGroup(); 48664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci grp.a = 1; 48764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertFalse(msg.optionalGroup != null); 48864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalGroup = grp; 48964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msg.optionalGroup != null); 49064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.optionalGroup.a); 49164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 49264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertFalse(msg.optionalGroup != null); 49364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 49464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .optionalGroup = new TestAllTypesNano.OptionalGroup(); 49564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalGroup.a = 2; 49664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msg.optionalGroup != null); 49764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 49864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertFalse(msg.optionalGroup != null); 49964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 50064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalGroup = grp; 50164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 50264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 50364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 50464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 10); 50564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 50664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 50764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 50864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(newMsg.optionalGroup != null); 50964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.optionalGroup.a); 51064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 51164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 51237ac79028de3d1cd8c215ba54fdf31e4eeca4b2cNicholas Seckar public void testNanoOptionalGroupWithUnknownFieldsEnabled() throws Exception { 51337ac79028de3d1cd8c215ba54fdf31e4eeca4b2cNicholas Seckar MessageWithGroup msg = new MessageWithGroup(); 51437ac79028de3d1cd8c215ba54fdf31e4eeca4b2cNicholas Seckar MessageWithGroup.Group grp = new MessageWithGroup.Group(); 51537ac79028de3d1cd8c215ba54fdf31e4eeca4b2cNicholas Seckar grp.a = 1; 51637ac79028de3d1cd8c215ba54fdf31e4eeca4b2cNicholas Seckar msg.group = grp; 51737ac79028de3d1cd8c215ba54fdf31e4eeca4b2cNicholas Seckar byte [] serialized = MessageNano.toByteArray(msg); 51837ac79028de3d1cd8c215ba54fdf31e4eeca4b2cNicholas Seckar 51937ac79028de3d1cd8c215ba54fdf31e4eeca4b2cNicholas Seckar MessageWithGroup parsed = MessageWithGroup.parseFrom(serialized); 52037ac79028de3d1cd8c215ba54fdf31e4eeca4b2cNicholas Seckar assertTrue(msg.group != null); 52137ac79028de3d1cd8c215ba54fdf31e4eeca4b2cNicholas Seckar assertEquals(1, msg.group.a); 52237ac79028de3d1cd8c215ba54fdf31e4eeca4b2cNicholas Seckar 52337ac79028de3d1cd8c215ba54fdf31e4eeca4b2cNicholas Seckar byte [] serialized2 = MessageNano.toByteArray(parsed); 52437ac79028de3d1cd8c215ba54fdf31e4eeca4b2cNicholas Seckar assertEquals(serialized2.length, serialized.length); 52537ac79028de3d1cd8c215ba54fdf31e4eeca4b2cNicholas Seckar MessageWithGroup parsed2 = MessageWithGroup.parseFrom(serialized2); 52637ac79028de3d1cd8c215ba54fdf31e4eeca4b2cNicholas Seckar } 52737ac79028de3d1cd8c215ba54fdf31e4eeca4b2cNicholas Seckar 52864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoOptionalNestedMessage() throws Exception { 52964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 53064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano.NestedMessage nestedMsg = new TestAllTypesNano.NestedMessage(); 53164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci nestedMsg.bb = 1; 53264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertFalse(msg.optionalNestedMessage != null); 53364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalNestedMessage = nestedMsg; 53464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msg.optionalNestedMessage != null); 53564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.optionalNestedMessage.bb); 53664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 53764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertFalse(msg.optionalNestedMessage != null); 53864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 53964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .optionalNestedMessage = new TestAllTypesNano.NestedMessage(); 54064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalNestedMessage.bb = 2; 54164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msg.optionalNestedMessage != null); 54264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 54364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertFalse(msg.optionalNestedMessage != null); 54464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 54564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalNestedMessage = nestedMsg; 54664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 54764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 54864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 54964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 8); 55064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 55164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 55264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 55364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(newMsg.optionalNestedMessage != null); 55464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.optionalNestedMessage.bb); 55564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 55664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 55764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoOptionalForeignMessage() throws Exception { 55864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 55964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci NanoOuterClass.ForeignMessageNano nestedMsg = new NanoOuterClass.ForeignMessageNano(); 56064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci nestedMsg.c = 1; 56164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertFalse(msg.optionalForeignMessage != null); 56264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalForeignMessage = nestedMsg; 56364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msg.optionalForeignMessage != null); 56464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.optionalForeignMessage.c); 56564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 56664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertFalse(msg.optionalForeignMessage != null); 56764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 56864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .optionalForeignMessage = new NanoOuterClass.ForeignMessageNano(); 56964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalForeignMessage.c = 2; 57064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msg.optionalForeignMessage != null); 57164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 57264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertFalse(msg.optionalForeignMessage != null); 57364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 57464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalForeignMessage = nestedMsg; 57564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 57664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 57764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 57864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 8); 57964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 58064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 58164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 58264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(newMsg.optionalForeignMessage != null); 58364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.optionalForeignMessage.c); 58464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 58564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 58664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoOptionalImportMessage() throws Exception { 58764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 58864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci UnittestImportNano.ImportMessageNano nestedMsg = new UnittestImportNano.ImportMessageNano(); 58964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci nestedMsg.d = 1; 59064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertFalse(msg.optionalImportMessage != null); 59164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalImportMessage = nestedMsg; 59264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msg.optionalImportMessage != null); 59364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.optionalImportMessage.d); 59464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 59564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertFalse(msg.optionalImportMessage != null); 59664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 59764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .optionalImportMessage = new UnittestImportNano.ImportMessageNano(); 59864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalImportMessage.d = 2; 59964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msg.optionalImportMessage != null); 60064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 60164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertFalse(msg.optionalImportMessage != null); 60264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 60364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalImportMessage = nestedMsg; 60464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 60564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 60664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 60764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 8); 60864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 60964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 61064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 61164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(newMsg.optionalImportMessage != null); 61264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.optionalImportMessage.d); 61364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 61464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 61564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoOptionalNestedEnum() throws Exception { 61664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 61764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalNestedEnum = TestAllTypesNano.BAR; 61864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(TestAllTypesNano.BAR, msg.optionalNestedEnum); 61964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 62064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .optionalNestedEnum = TestAllTypesNano.BAZ; 62164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(TestAllTypesNano.BAZ, msg.optionalNestedEnum); 62264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 62364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(TestAllTypesNano.FOO, msg.optionalNestedEnum); 62464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 62564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalNestedEnum = TestAllTypesNano.BAR; 62664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 62764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 62864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 62964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 6); 63064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 63164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 63264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 63364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(TestAllTypesNano.BAR, newMsg.optionalNestedEnum); 63464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 63564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 63664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoOptionalForeignEnum() throws Exception { 63764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 63864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalForeignEnum = NanoOuterClass.FOREIGN_NANO_BAR; 63964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(NanoOuterClass.FOREIGN_NANO_BAR, msg.optionalForeignEnum); 64064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 64164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .optionalForeignEnum = NanoOuterClass.FOREIGN_NANO_BAZ; 64264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(NanoOuterClass.FOREIGN_NANO_BAZ, msg.optionalForeignEnum); 64364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 64464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(NanoOuterClass.FOREIGN_NANO_FOO, msg.optionalForeignEnum); 64564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 64664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalForeignEnum = NanoOuterClass.FOREIGN_NANO_BAR; 64764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 64864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 64964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 65064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 6); 65164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 65264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 65364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 65464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(NanoOuterClass.FOREIGN_NANO_BAR, newMsg.optionalForeignEnum); 65564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 65664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 65764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoOptionalImportEnum() throws Exception { 65864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 65964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalImportEnum = UnittestImportNano.IMPORT_NANO_BAR; 66064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(UnittestImportNano.IMPORT_NANO_BAR, msg.optionalImportEnum); 66164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 66264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .optionalImportEnum = UnittestImportNano.IMPORT_NANO_BAZ; 66364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(UnittestImportNano.IMPORT_NANO_BAZ, msg.optionalImportEnum); 66464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 66564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(UnittestImportNano.IMPORT_NANO_FOO, msg.optionalImportEnum); 66664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 66764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalImportEnum = UnittestImportNano.IMPORT_NANO_BAR; 66864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 66964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 67064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 67164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 6); 67264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 67364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 67464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 67564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(UnittestImportNano.IMPORT_NANO_BAR, newMsg.optionalImportEnum); 67664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 67764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 67864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoOptionalStringPiece() throws Exception { 67964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 68064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalStringPiece = "hello"; 68164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("hello", msg.optionalStringPiece); 68264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 68364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msg.optionalStringPiece.isEmpty()); 68464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 68564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .optionalStringPiece = "hello2"; 68664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("hello2", msg.optionalStringPiece); 68764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 68864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msg.optionalStringPiece.isEmpty()); 68964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 69064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalStringPiece = "bye"; 69164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 69264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 69364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 69464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 9); 69564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 69664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 69764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 69864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(newMsg.optionalStringPiece != null); 69964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("bye", newMsg.optionalStringPiece); 70064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 70164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 70264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoOptionalCord() throws Exception { 70364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 70464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalCord = "hello"; 70564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("hello", msg.optionalCord); 70664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 70764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msg.optionalCord.isEmpty()); 70864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 70964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .optionalCord = "hello2"; 71064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("hello2", msg.optionalCord); 71164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 71264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msg.optionalCord.isEmpty()); 71364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 71464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.optionalCord = "bye"; 71564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 71664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 71764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 71864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 9); 71964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 72064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 72164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 72264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(newMsg.optionalCord != null); 72364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("bye", newMsg.optionalCord); 72464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 72564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 72664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedInt32() throws Exception { 72764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 72864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedInt32.length); 72964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedInt32 = new int[] { 123, 789, 456 }; 73064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(789, msg.repeatedInt32[1]); 73164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.repeatedInt32[2]); 73264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 73364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedInt32.length); 73464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 73564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedInt32 = new int[] { 456 }; 73664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedInt32.length); 73764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.repeatedInt32[0]); 73864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 73964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedInt32.length); 74064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 74164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 74264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 74364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedInt32 = new int[] { 123 }; 74464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedInt32.length); 74564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 74664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 74764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 74864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 6); 74964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 75064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 75164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedInt32.length); 75264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.repeatedInt32[0]); 75364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 75464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 75564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 75664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedInt32 = new int[] { 123, 456 }; 75764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedInt32.length); 75864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 75964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 76064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 76164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 10); 76264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 76364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 76464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 76564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedInt32.length); 76664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.repeatedInt32[0]); 76764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, newMsg.repeatedInt32[1]); 76864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 76964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 77064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedInt64() throws Exception { 77164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 77264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedInt64.length); 77364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedInt64 = new long[] { 123, 789, 456 }; 77464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(789, msg.repeatedInt64[1]); 77564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.repeatedInt64[2]); 77664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 77764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedInt64.length); 77864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 77964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedInt64 = new long[] { 456 }; 78064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedInt64.length); 78164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.repeatedInt64[0]); 78264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 78364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedInt64.length); 78464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 78564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 78664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 78764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedInt64 = new long[] { 123 }; 78864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedInt64.length); 78964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 79064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 79164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 79264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 6); 79364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 79464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 79564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedInt64.length); 79664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.repeatedInt64[0]); 79764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 79864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 79964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 80064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedInt64 = new long[] { 123, 456 }; 80164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedInt64.length); 80264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 80364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 80464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 80564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 10); 80664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 80764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 80864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 80964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedInt64.length); 81064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.repeatedInt64[0]); 81164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, newMsg.repeatedInt64[1]); 81264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 81364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 81464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedUint32() throws Exception { 81564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 81664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedUint32.length); 81764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedUint32 = new int[] { 123, 789, 456 }; 81864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(789, msg.repeatedUint32[1]); 81964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.repeatedUint32[2]); 82064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 82164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedUint32.length); 82264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 82364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedUint32 = new int[] { 456 }; 82464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedUint32.length); 82564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.repeatedUint32[0]); 82664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 82764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedUint32.length); 82864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 82964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 83064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 83164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedUint32 = new int[] { 123 }; 83264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedUint32.length); 83364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 83464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 83564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 83664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 6); 83764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 83864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 83964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedUint32.length); 84064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.repeatedUint32[0]); 84164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 84264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 84364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 84464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedUint32 = new int[] { 123, 456 }; 84564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedUint32.length); 84664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 84764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 84864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 84964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 10); 85064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 85164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 85264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 85364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedUint32.length); 85464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.repeatedUint32[0]); 85564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, newMsg.repeatedUint32[1]); 85664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 85764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 85864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedUint64() throws Exception { 85964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 86064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedUint64.length); 86164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedUint64 = new long[] { 123, 789, 456 }; 86264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(789, msg.repeatedUint64[1]); 86364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.repeatedUint64[2]); 86464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 86564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedUint64.length); 86664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 86764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedUint64 = new long[] { 456 }; 86864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedUint64.length); 86964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.repeatedUint64[0]); 87064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 87164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedUint64.length); 87264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 87364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 87464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 87564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedUint64 = new long[] { 123 }; 87664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedUint64.length); 87764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 87864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 87964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 88064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 6); 88164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 88264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 88364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedUint64.length); 88464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.repeatedUint64[0]); 88564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 88664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 88764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 88864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedUint64 = new long[] { 123, 456 }; 88964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedUint64.length); 89064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 89164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 89264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 89364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 10); 89464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 89564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 89664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 89764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedUint64.length); 89864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.repeatedUint64[0]); 89964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, newMsg.repeatedUint64[1]); 90064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 90164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 90264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedSint32() throws Exception { 90364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 90464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedSint32.length); 90564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedSint32 = new int[] { 123, 789, 456 }; 90664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(789, msg.repeatedSint32[1]); 90764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.repeatedSint32[2]); 90864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 90964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedSint32.length); 91064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 91164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedSint32 = new int[] { 456 }; 91264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedSint32.length); 91364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.repeatedSint32[0]); 91464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 91564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedSint32.length); 91664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 91764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 91864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 91964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedSint32 = new int[] { 123 }; 92064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedSint32.length); 92164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 92264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 92364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 92464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 7); 92564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 92664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 92764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedSint32.length); 92864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.repeatedSint32[0]); 92964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 93064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 93164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 93264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedSint32 = new int[] { 123, 456 }; 93364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedSint32.length); 93464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 93564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 93664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 93764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 11); 93864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 93964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 94064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 94164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedSint32.length); 94264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.repeatedSint32[0]); 94364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, newMsg.repeatedSint32[1]); 94464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 94564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 94664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedSint64() throws Exception { 94764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 94864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedSint64.length); 94964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedSint64 = new long[] { 123, 789, 456 }; 95064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(789, msg.repeatedSint64[1]); 95164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.repeatedSint64[2]); 95264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 95364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedSint64.length); 95464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 95564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedSint64 = new long[] { 456 }; 95664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedSint64.length); 95764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.repeatedSint64[0]); 95864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 95964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedSint64.length); 96064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 96164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 96264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 96364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedSint64 = new long[] { 123 }; 96464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedSint64.length); 96564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 96664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 96764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 96864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 7); 96964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 97064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 97164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedSint64.length); 97264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.repeatedSint64[0]); 97364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 97464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 97564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 97664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedSint64 = new long[] { 123, 456 }; 97764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedSint64.length); 97864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 97964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 98064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 98164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 11); 98264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 98364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 98464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 98564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedSint64.length); 98664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.repeatedSint64[0]); 98764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, newMsg.repeatedSint64[1]); 98864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 98964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 99064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedFixed32() throws Exception { 99164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 99264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedFixed32.length); 99364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedFixed32 = new int[] { 123, 789, 456 }; 99464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(789, msg.repeatedFixed32[1]); 99564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.repeatedFixed32[2]); 99664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 99764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedFixed32.length); 99864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 99964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedFixed32 = new int[] { 456 }; 100064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedFixed32.length); 100164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.repeatedFixed32[0]); 100264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 100364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedFixed32.length); 100464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 100564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 100664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 100764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedFixed32 = new int[] { 123 }; 100864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedFixed32.length); 100964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 101064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 101164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 101264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 9); 101364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 101464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 101564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedFixed32.length); 101664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.repeatedFixed32[0]); 101764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 101864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 101964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 102064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedFixed32 = new int[] { 123, 456 }; 102164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedFixed32.length); 102264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 102364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 102464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 102564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 15); 102664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 102764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 102864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 102964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedFixed32.length); 103064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.repeatedFixed32[0]); 103164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, newMsg.repeatedFixed32[1]); 103264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 103364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 103464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedFixed64() throws Exception { 103564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 103664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedFixed64.length); 103764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedFixed64 = new long[] { 123, 789, 456 }; 103864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(789, msg.repeatedFixed64[1]); 103964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.repeatedFixed64[2]); 104064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 104164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedFixed64.length); 104264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 104364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedFixed64 = new long[] { 456 }; 104464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedFixed64.length); 104564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.repeatedFixed64[0]); 104664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 104764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedFixed64.length); 104864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 104964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 105064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 105164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedFixed64 = new long[] { 123 }; 105264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedFixed64.length); 105364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 105464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 105564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 105664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 13); 105764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 105864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 105964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedFixed64.length); 106064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.repeatedFixed64[0]); 106164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 106264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 106364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 106464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedFixed64 = new long[] { 123, 456 }; 106564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedFixed64.length); 106664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 106764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 106864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 106964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 23); 107064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 107164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 107264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 107364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedFixed64.length); 107464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.repeatedFixed64[0]); 107564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, newMsg.repeatedFixed64[1]); 107664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 107764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 107864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedSfixed32() throws Exception { 107964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 108064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedSfixed32.length); 108164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedSfixed32 = new int[] { 123, 789, 456 }; 108264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(789, msg.repeatedSfixed32[1]); 108364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.repeatedSfixed32[2]); 108464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 108564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedSfixed32.length); 108664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 108764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedSfixed32 = new int[] { 456 }; 108864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedSfixed32.length); 108964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.repeatedSfixed32[0]); 109064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 109164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedSfixed32.length); 109264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 109364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 109464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 109564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedSfixed32 = new int[] { 123 }; 109664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedSfixed32.length); 109764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 109864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 109964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 110064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 9); 110164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 110264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 110364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedSfixed32.length); 110464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.repeatedSfixed32[0]); 110564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 110664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 110764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 110864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedSfixed32 = new int[] { 123, 456 }; 110964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedSfixed32.length); 111064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 111164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 111264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 111364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 15); 111464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 111564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 111664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 111764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedSfixed32.length); 111864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.repeatedSfixed32[0]); 111964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, newMsg.repeatedSfixed32[1]); 112064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 112164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 112264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedSfixed64() throws Exception { 112364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 112464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedSfixed64.length); 112564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedSfixed64 = new long[] { 123, 789, 456 }; 112664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(789, msg.repeatedSfixed64[1]); 112764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.repeatedSfixed64[2]); 112864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 112964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedSfixed64.length); 113064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 113164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedSfixed64 = new long[] { 456 }; 113264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedSfixed64.length); 113364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.repeatedSfixed64[0]); 113464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 113564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedSfixed64.length); 113664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 113764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 113864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 113964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedSfixed64 = new long[] { 123 }; 114064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedSfixed64.length); 114164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 114264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 114364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 114464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 13); 114564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 114664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 114764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedSfixed64.length); 114864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.repeatedSfixed64[0]); 114964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 115064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 115164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 115264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedSfixed64 = new long[] { 123, 456 }; 115364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedSfixed64.length); 115464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 115564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 115664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 115764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 23); 115864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 115964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 116064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 116164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedSfixed64.length); 116264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.repeatedSfixed64[0]); 116364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, newMsg.repeatedSfixed64[1]); 116464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 116564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 116664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedFloat() throws Exception { 116764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 116864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedFloat.length); 116964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedFloat = new float[] { 123f, 789f, 456f }; 117064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(789f, msg.repeatedFloat[1]); 117164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456f, msg.repeatedFloat[2]); 117264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 117364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedFloat.length); 117464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 117564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedFloat = new float[] { 456f }; 117664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedFloat.length); 117764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456f, msg.repeatedFloat[0]); 117864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 117964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedFloat.length); 118064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 118164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 118264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 118364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedFloat = new float[] { 123f }; 118464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedFloat.length); 118564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 118664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 118764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 118864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 9); 118964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 119064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 119164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedFloat.length); 119264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123f, newMsg.repeatedFloat[0]); 119364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 119464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 119564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 119664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedFloat = new float[] { 123f, 456f }; 119764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedFloat.length); 119864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 119964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 120064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 120164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 15); 120264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 120364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 120464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 120564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedFloat.length); 120664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123f, newMsg.repeatedFloat[0]); 120764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456f, newMsg.repeatedFloat[1]); 120864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 120964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 121064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedDouble() throws Exception { 121164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 121264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedDouble.length); 121364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedDouble = new double[] { 123.0, 789.0, 456.0 }; 121464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(789.0, msg.repeatedDouble[1]); 121564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456.0, msg.repeatedDouble[2]); 121664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 121764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedDouble.length); 121864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 121964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedDouble = new double[] { 456.0 }; 122064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedDouble.length); 122164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456.0, msg.repeatedDouble[0]); 122264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 122364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedDouble.length); 122464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 122564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 122664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 122764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedDouble = new double[] { 123.0 }; 122864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedDouble.length); 122964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 123064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 123164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 123264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 13); 123364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 123464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 123564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedDouble.length); 123664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123.0, newMsg.repeatedDouble[0]); 123764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 123864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 123964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 124064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedDouble = new double[] { 123.0, 456.0 }; 124164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedDouble.length); 124264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 124364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 124464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 124564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 23); 124664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 124764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 124864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 124964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedDouble.length); 125064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123.0, newMsg.repeatedDouble[0]); 125164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456.0, newMsg.repeatedDouble[1]); 125264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 125364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 125464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedBool() throws Exception { 125564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 125664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedBool.length); 125764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedBool = new boolean[] { false, true, false }; 125864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msg.repeatedBool[1]); 125964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertFalse(msg.repeatedBool[2]); 126064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 126164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedBool.length); 126264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 126364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedBool = new boolean[] { true }; 126464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedBool.length); 126564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msg.repeatedBool[0]); 126664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 126764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedBool.length); 126864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 126964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 127064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 127164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedBool = new boolean[] { false }; 127264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedBool.length); 127364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 127464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 127564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 127664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 6); 127764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 127864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 127964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedBool.length); 128064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertFalse(newMsg.repeatedBool[0]); 128164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 128264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 128364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 128464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedBool = new boolean[] { true, false }; 128564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedBool.length); 128664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 128764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 128864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 128964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 9); 129064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 129164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 129264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 129364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedBool.length); 129464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(newMsg.repeatedBool[0]); 129564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertFalse(newMsg.repeatedBool[1]); 129664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 129764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 129864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedString() throws Exception { 129964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 130064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedString.length); 130164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedString = new String[] { "hello", "bye", "boo" }; 130264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("bye", msg.repeatedString[1]); 130364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("boo", msg.repeatedString[2]); 130464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 130564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedString.length); 130664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 130764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedString = new String[] { "boo" }; 130864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedString.length); 130964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("boo", msg.repeatedString[0]); 131064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 131164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedString.length); 131264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 131364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 131464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 131564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedString = new String[] { "" }; 131664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedString.length); 131764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 131864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 131964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 132064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 6); 132164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 132264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 132364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedString.length); 132464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(newMsg.repeatedString[0].isEmpty()); 132564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 132664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 132764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 132864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedString = new String[] { "hello", "world" }; 132964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedString.length); 133064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 133164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 133264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 133364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 19); 133464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 133564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 133664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 133764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedString.length); 133864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("hello", newMsg.repeatedString[0]); 133964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("world", newMsg.repeatedString[1]); 134064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 134164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 134264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedBytes() throws Exception { 134364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 134464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedBytes.length); 134564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedBytes = new byte[][] { 134664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci InternalNano.copyFromUtf8("hello"), 134764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci InternalNano.copyFromUtf8("bye"), 134864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci InternalNano.copyFromUtf8("boo") 134964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci }; 135064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("bye", new String(msg.repeatedBytes[1], "UTF-8")); 135164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("boo", new String(msg.repeatedBytes[2], "UTF-8")); 135264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 135364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedBytes.length); 135464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 135564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedBytes = new byte[][] { InternalNano.copyFromUtf8("boo") }; 135664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedBytes.length); 135764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("boo", new String(msg.repeatedBytes[0], "UTF-8")); 135864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 135964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedBytes.length); 136064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 136164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 136264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 136364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedBytes = new byte[][] { InternalNano.copyFromUtf8("") }; 136464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedBytes.length); 136564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 136664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 136764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 136864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 6); 136964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 137064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 137164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedBytes.length); 137264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(newMsg.repeatedBytes[0].length == 0); 137364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 137464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 137564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 137664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedBytes = new byte[][] { 137764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci InternalNano.copyFromUtf8("hello"), 137864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci InternalNano.copyFromUtf8("world") 137964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci }; 138064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedBytes.length); 138164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 138264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 138364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 138464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 19); 138564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 138664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 138764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 138864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedBytes.length); 138964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("hello", new String(newMsg.repeatedBytes[0], "UTF-8")); 139064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("world", new String(newMsg.repeatedBytes[1], "UTF-8")); 139164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 139264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 139364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedGroup() throws Exception { 139464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 139564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano.RepeatedGroup group0 = 139664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci new TestAllTypesNano.RepeatedGroup(); 139764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci group0.a = 0; 139864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano.RepeatedGroup group1 = 139964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci new TestAllTypesNano.RepeatedGroup(); 140064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci group1.a = 1; 140164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano.RepeatedGroup group2 = 140264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci new TestAllTypesNano.RepeatedGroup(); 140364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci group2.a = 2; 140464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 140564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedGroup = new TestAllTypesNano.RepeatedGroup[] { group0, group1, group2 }; 140664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(3, msg.repeatedGroup.length); 140764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedGroup[0].a); 140864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedGroup[1].a); 140964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedGroup[2].a); 141064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 141164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedGroup.length); 141264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 141364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedGroup = new TestAllTypesNano.RepeatedGroup[] { group1 }; 141464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedGroup.length); 141564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedGroup[0].a); 141664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 141764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedGroup.length); 141864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 141964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 142064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 142164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedGroup = new TestAllTypesNano.RepeatedGroup[] { group0 }; 142264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedGroup.length); 142364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 142464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 142564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 142664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 7); 142764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 142864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 142964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedGroup.length); 143064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, newMsg.repeatedGroup[0].a); 143164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 143264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 143364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 143464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedGroup = new TestAllTypesNano.RepeatedGroup[] { group0, group1 }; 143564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedGroup.length); 143664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 143764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 143864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 143964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 14); 144064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 144164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 144264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 144364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedGroup.length); 144464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, newMsg.repeatedGroup[0].a); 144564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedGroup[1].a); 144664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 144764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 144864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedNestedMessage() throws Exception { 144964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 145064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano.NestedMessage nestedMsg0 = 145164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci new TestAllTypesNano.NestedMessage(); 145264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci nestedMsg0.bb = 0; 145364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano.NestedMessage nestedMsg1 = 145464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci new TestAllTypesNano.NestedMessage(); 145564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci nestedMsg1.bb = 1; 145664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano.NestedMessage nestedMsg2 = 145764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci new TestAllTypesNano.NestedMessage(); 145864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci nestedMsg2.bb = 2; 145964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 146064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedNestedMessage = 146164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci new TestAllTypesNano.NestedMessage[] { nestedMsg0, nestedMsg1, nestedMsg2 }; 146264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(3, msg.repeatedNestedMessage.length); 146364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedNestedMessage[0].bb); 146464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedNestedMessage[1].bb); 146564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedNestedMessage[2].bb); 146664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 146764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedNestedMessage.length); 146864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 146964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedNestedMessage = new TestAllTypesNano.NestedMessage[] { nestedMsg1 }; 147064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedNestedMessage.length); 147164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedNestedMessage[0].bb); 147264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 147364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedNestedMessage.length); 147464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 147564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 147664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 147764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedNestedMessage = new TestAllTypesNano.NestedMessage[] { nestedMsg0 }; 147864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedNestedMessage.length); 147964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 148064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 148164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 148264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 6); 148364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 148464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 148564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedNestedMessage.length); 148664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, newMsg.repeatedNestedMessage[0].bb); 148764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 148864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 148964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 149064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedNestedMessage = new TestAllTypesNano.NestedMessage[] { nestedMsg0, nestedMsg1 }; 149164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedNestedMessage.length); 149264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 149364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 149464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 149564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 11); 149664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 149764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 149864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 149964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedNestedMessage.length); 150064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, newMsg.repeatedNestedMessage[0].bb); 150164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedNestedMessage[1].bb); 150264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 150364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 150464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedForeignMessage() throws Exception { 150564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 150664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci NanoOuterClass.ForeignMessageNano foreignMsg0 = 150764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci new NanoOuterClass.ForeignMessageNano(); 150864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci foreignMsg0.c = 0; 150964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci NanoOuterClass.ForeignMessageNano foreignMsg1 = 151064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci new NanoOuterClass.ForeignMessageNano(); 151164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci foreignMsg1.c = 1; 151264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci NanoOuterClass.ForeignMessageNano foreignMsg2 = 151364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci new NanoOuterClass.ForeignMessageNano(); 151464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci foreignMsg2.c = 2; 151564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 151664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedForeignMessage = 151764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci new NanoOuterClass.ForeignMessageNano[] { foreignMsg0, foreignMsg1, foreignMsg2 }; 151864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(3, msg.repeatedForeignMessage.length); 151964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedForeignMessage[0].c); 152064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedForeignMessage[1].c); 152164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedForeignMessage[2].c); 152264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 152364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedForeignMessage.length); 152464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 152564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedForeignMessage = new NanoOuterClass.ForeignMessageNano[] { foreignMsg1 }; 152664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedForeignMessage.length); 152764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedForeignMessage[0].c); 152864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 152964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedForeignMessage.length); 153064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 153164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 153264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 153364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedForeignMessage = new NanoOuterClass.ForeignMessageNano[] { foreignMsg0 }; 153464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedForeignMessage.length); 153564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 153664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 153764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 153864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 6); 153964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 154064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 154164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedForeignMessage.length); 154264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, newMsg.repeatedForeignMessage[0].c); 154364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 154464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 154564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 154664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedForeignMessage = new NanoOuterClass.ForeignMessageNano[] { foreignMsg0, foreignMsg1 }; 154764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedForeignMessage.length); 154864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 154964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 155064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 155164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 11); 155264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 155364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 155464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 155564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedForeignMessage.length); 155664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, newMsg.repeatedForeignMessage[0].c); 155764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedForeignMessage[1].c); 155864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 155964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 156064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedImportMessage() throws Exception { 156164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 156264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci UnittestImportNano.ImportMessageNano foreignMsg0 = 156364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci new UnittestImportNano.ImportMessageNano(); 156464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci foreignMsg0.d = 0; 156564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci UnittestImportNano.ImportMessageNano foreignMsg1 = 156664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci new UnittestImportNano.ImportMessageNano(); 156764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci foreignMsg1.d = 1; 156864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci UnittestImportNano.ImportMessageNano foreignMsg2 = 156964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci new UnittestImportNano.ImportMessageNano(); 157064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci foreignMsg2.d = 2; 157164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 157264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedImportMessage = 157364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci new UnittestImportNano.ImportMessageNano[] { foreignMsg0, foreignMsg1, foreignMsg2 }; 157464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(3, msg.repeatedImportMessage.length); 157564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedImportMessage[0].d); 157664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedImportMessage[1].d); 157764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedImportMessage[2].d); 157864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 157964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedImportMessage.length); 158064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 158164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedImportMessage = new UnittestImportNano.ImportMessageNano[] { foreignMsg1 }; 158264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedImportMessage.length); 158364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedImportMessage[0].d); 158464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 158564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedImportMessage.length); 158664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 158764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 158864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 158964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedImportMessage = new UnittestImportNano.ImportMessageNano[] { foreignMsg0 }; 159064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedImportMessage.length); 159164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 159264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 159364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 159464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 6); 159564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 159664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 159764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedImportMessage.length); 159864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, newMsg.repeatedImportMessage[0].d); 159964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 160064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 160164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 160264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedImportMessage = new UnittestImportNano.ImportMessageNano[] { foreignMsg0, foreignMsg1 }; 160364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedImportMessage.length); 160464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 160564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 160664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 160764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 11); 160864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 160964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 161064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 161164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedImportMessage.length); 161264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, newMsg.repeatedImportMessage[0].d); 161364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedImportMessage[1].d); 161464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 161564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 161664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedNestedEnum() throws Exception { 161764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 161864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedNestedEnum = new int[] { 161964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano.FOO, 162064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano.BAR, 162164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano.BAZ 162264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci }; 162364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(3, msg.repeatedNestedEnum.length); 162464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(TestAllTypesNano.FOO, msg.repeatedNestedEnum[0]); 162564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(TestAllTypesNano.BAR, msg.repeatedNestedEnum[1]); 162664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(TestAllTypesNano.BAZ, msg.repeatedNestedEnum[2]); 162764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 162864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedNestedEnum.length); 162964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 163064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedNestedEnum = new int[] { TestAllTypesNano.BAR }; 163164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedNestedEnum.length); 163264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(TestAllTypesNano.BAR, msg.repeatedNestedEnum[0]); 163364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 163464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedNestedEnum.length); 163564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 163664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 163764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 163864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedNestedEnum = new int[] { TestAllTypesNano.FOO }; 163964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 164064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 164164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 164264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 6); 164364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 164464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 164564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedNestedEnum.length); 164664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(TestAllTypesNano.FOO, msg.repeatedNestedEnum[0]); 164764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 164864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 164964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 165064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedNestedEnum = new int[] { TestAllTypesNano.FOO, TestAllTypesNano.BAR }; 165164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedNestedEnum.length); 165264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 165364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 165464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 165564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 9); 165664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 165764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 165864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 165964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedNestedEnum.length); 166064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(TestAllTypesNano.FOO, msg.repeatedNestedEnum[0]); 166164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(TestAllTypesNano.BAR, msg.repeatedNestedEnum[1]); 166264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 166364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 166464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedForeignEnum() throws Exception { 166564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 166664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedForeignEnum = new int[] { 166764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci NanoOuterClass.FOREIGN_NANO_FOO, 166864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci NanoOuterClass.FOREIGN_NANO_BAR, 166964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci NanoOuterClass.FOREIGN_NANO_BAZ 167064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci }; 167164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(3, msg.repeatedForeignEnum.length); 167264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(NanoOuterClass.FOREIGN_NANO_FOO, msg.repeatedForeignEnum[0]); 167364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(NanoOuterClass.FOREIGN_NANO_BAR, msg.repeatedForeignEnum[1]); 167464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(NanoOuterClass.FOREIGN_NANO_BAZ, msg.repeatedForeignEnum[2]); 167564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 167664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedForeignEnum.length); 167764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 167864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedForeignEnum = new int[] { NanoOuterClass.FOREIGN_NANO_BAR }; 167964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedForeignEnum.length); 168064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(NanoOuterClass.FOREIGN_NANO_BAR, msg.repeatedForeignEnum[0]); 168164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 168264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedForeignEnum.length); 168364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 168464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 168564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 168664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedForeignEnum = new int[] { NanoOuterClass.FOREIGN_NANO_FOO }; 168764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 168864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 168964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 169064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 6); 169164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 169264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 169364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedForeignEnum.length); 169464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(NanoOuterClass.FOREIGN_NANO_FOO, msg.repeatedForeignEnum[0]); 169564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 169664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 169764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 169864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedForeignEnum = new int[] { 169964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci NanoOuterClass.FOREIGN_NANO_FOO, 170064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci NanoOuterClass.FOREIGN_NANO_BAR 170164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci }; 170264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedForeignEnum.length); 170364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 170464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 170564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 170664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 9); 170764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 170864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 170964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 171064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedForeignEnum.length); 171164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(NanoOuterClass.FOREIGN_NANO_FOO, msg.repeatedForeignEnum[0]); 171264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(NanoOuterClass.FOREIGN_NANO_BAR, msg.repeatedForeignEnum[1]); 171364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 171464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 171564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedImportEnum() throws Exception { 171664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 171764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedImportEnum = new int[] { 171864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci UnittestImportNano.IMPORT_NANO_FOO, 171964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci UnittestImportNano.IMPORT_NANO_BAR, 172064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci UnittestImportNano.IMPORT_NANO_BAZ 172164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci }; 172264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(3, msg.repeatedImportEnum.length); 172364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(UnittestImportNano.IMPORT_NANO_FOO, msg.repeatedImportEnum[0]); 172464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(UnittestImportNano.IMPORT_NANO_BAR, msg.repeatedImportEnum[1]); 172564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(UnittestImportNano.IMPORT_NANO_BAZ, msg.repeatedImportEnum[2]); 172664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 172764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedImportEnum.length); 172864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 172964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedImportEnum = new int[] { UnittestImportNano.IMPORT_NANO_BAR }; 173064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedImportEnum.length); 173164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(UnittestImportNano.IMPORT_NANO_BAR, msg.repeatedImportEnum[0]); 173264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 173364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedImportEnum.length); 173464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 173564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 173664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 173764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedImportEnum = new int[] { UnittestImportNano.IMPORT_NANO_FOO }; 173864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 173964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 174064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 174164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 6); 174264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 174364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 174464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedImportEnum.length); 174564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(UnittestImportNano.IMPORT_NANO_FOO, msg.repeatedImportEnum[0]); 174664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 174764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 174864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 174964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedImportEnum = new int[] { 175064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci UnittestImportNano.IMPORT_NANO_FOO, 175164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci UnittestImportNano.IMPORT_NANO_BAR 175264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci }; 175364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedImportEnum.length); 175464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 175564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 175664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 175764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 9); 175864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 175964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 176064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 176164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedImportEnum.length); 176264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(UnittestImportNano.IMPORT_NANO_FOO, msg.repeatedImportEnum[0]); 176364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(UnittestImportNano.IMPORT_NANO_BAR, msg.repeatedImportEnum[1]); 176464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 176564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 176664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedStringPiece() throws Exception { 176764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 176864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedStringPiece.length); 176964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedStringPiece = new String[] { "hello", "bye", "boo" }; 177064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("bye", msg.repeatedStringPiece[1]); 177164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("boo", msg.repeatedStringPiece[2]); 177264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 177364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedStringPiece.length); 177464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 177564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedStringPiece = new String[] { "boo" }; 177664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedStringPiece.length); 177764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("boo", msg.repeatedStringPiece[0]); 177864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 177964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedStringPiece.length); 178064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 178164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 178264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 178364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedStringPiece = new String[] { "" }; 178464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedStringPiece.length); 178564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 178664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 178764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 178864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 6); 178964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 179064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 179164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedStringPiece.length); 179264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(newMsg.repeatedStringPiece[0].isEmpty()); 179364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 179464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 179564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 179664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedStringPiece = new String[] { "hello", "world" }; 179764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedStringPiece.length); 179864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 179964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 180064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 180164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 19); 180264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 180364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 180464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 180564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedStringPiece.length); 180664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("hello", newMsg.repeatedStringPiece[0]); 180764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("world", newMsg.repeatedStringPiece[1]); 180864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 180964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 181064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedCord() throws Exception { 181164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 181264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedCord.length); 181364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedCord = new String[] { "hello", "bye", "boo" }; 181464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("bye", msg.repeatedCord[1]); 181564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("boo", msg.repeatedCord[2]); 181664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 181764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedCord.length); 181864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 181964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedCord = new String[] { "boo" }; 182064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedCord.length); 182164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("boo", msg.repeatedCord[0]); 182264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 182364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedCord.length); 182464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 182564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 182664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 182764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedCord = new String[] { "" }; 182864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedCord.length); 182964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 183064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 183164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 183264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 6); 183364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 183464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 183564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedCord.length); 183664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(newMsg.repeatedCord[0].isEmpty()); 183764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 183864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 183964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 184064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedCord = new String[] { "hello", "world" }; 184164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedCord.length); 184264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 184364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 184464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 184564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 19); 184664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 184764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 184864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 184964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedCord.length); 185064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("hello", newMsg.repeatedCord[0]); 185164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("world", newMsg.repeatedCord[1]); 185264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 185364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 185464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedPackedInt32() throws Exception { 185564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 185664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedPackedInt32.length); 185764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedPackedInt32 = new int[] { 123, 789, 456 }; 185864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(789, msg.repeatedPackedInt32[1]); 185964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.repeatedPackedInt32[2]); 186064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 186164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedPackedInt32.length); 186264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 186364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedPackedInt32 = new int[] { 456 }; 186464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedPackedInt32.length); 186564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.repeatedPackedInt32[0]); 186664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 186764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedPackedInt32.length); 186864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 186964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 187064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 187164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedPackedInt32 = new int[] { 123 }; 187264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedPackedInt32.length); 187364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 187464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 187564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 187664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 7); 187764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 187864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 187964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedPackedInt32.length); 188064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.repeatedPackedInt32[0]); 188164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 188264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 188364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 188464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedPackedInt32 = new int[] { 123, 456 }; 188564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedPackedInt32.length); 188664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 188764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 188864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 188964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 9); 189064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 189164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 189264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 189364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedPackedInt32.length); 189464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.repeatedPackedInt32[0]); 189564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, newMsg.repeatedPackedInt32[1]); 189664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 189764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 189864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedPackedSfixed64() throws Exception { 189964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 190064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedPackedSfixed64.length); 190164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedPackedSfixed64 = new long[] { 123, 789, 456 }; 190264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(789, msg.repeatedPackedSfixed64[1]); 190364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.repeatedPackedSfixed64[2]); 190464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 190564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedPackedSfixed64.length); 190664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 190764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedPackedSfixed64 = new long[] { 456 }; 190864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedPackedSfixed64.length); 190964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, msg.repeatedPackedSfixed64[0]); 191064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 191164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedPackedSfixed64.length); 191264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 191364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 191464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 191564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedPackedSfixed64 = new long[] { 123 }; 191664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedPackedSfixed64.length); 191764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 191864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 191964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 192064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 14); 192164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 192264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 192364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedPackedSfixed64.length); 192464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.repeatedPackedSfixed64[0]); 192564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 192664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 192764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 192864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedPackedSfixed64 = new long[] { 123, 456 }; 192964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedPackedSfixed64.length); 193064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 193164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 193264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 193364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 22); 193464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 193564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 193664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 193764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedPackedSfixed64.length); 193864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.repeatedPackedSfixed64[0]); 193964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, newMsg.repeatedPackedSfixed64[1]); 194064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 194164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 194264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedPackedNestedEnum() throws Exception { 194364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 194464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedPackedNestedEnum = new int[] { 194564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano.FOO, 194664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano.BAR, 194764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano.BAZ 194864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci }; 194964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(3, msg.repeatedPackedNestedEnum.length); 195064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(TestAllTypesNano.FOO, msg.repeatedPackedNestedEnum[0]); 195164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(TestAllTypesNano.BAR, msg.repeatedPackedNestedEnum[1]); 195264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(TestAllTypesNano.BAZ, msg.repeatedPackedNestedEnum[2]); 195364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 195464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedPackedNestedEnum.length); 195564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 195664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedPackedNestedEnum = new int[] { TestAllTypesNano.BAR }; 195764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, msg.repeatedPackedNestedEnum.length); 195864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(TestAllTypesNano.BAR, msg.repeatedPackedNestedEnum[0]); 195964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 196064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(0, msg.repeatedPackedNestedEnum.length); 196164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 196264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 1 entry 196364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 196464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedPackedNestedEnum = new int[] { TestAllTypesNano.FOO }; 196564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 196664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 196764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 196864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 7); 196964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 197064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 197164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, newMsg.repeatedPackedNestedEnum.length); 197264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(TestAllTypesNano.FOO, msg.repeatedPackedNestedEnum[0]); 197364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 197464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Test 2 entries 197564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear() 197664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci .repeatedPackedNestedEnum = new int[] { TestAllTypesNano.FOO, TestAllTypesNano.BAR }; 197764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, msg.repeatedPackedNestedEnum.length); 197864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci result = MessageNano.toByteArray(msg); 197964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msgSerializedSize = msg.getSerializedSize(); 198064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 198164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 8); 198264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 198364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 198464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci newMsg = TestAllTypesNano.parseFrom(result); 198564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, newMsg.repeatedPackedNestedEnum.length); 198664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(TestAllTypesNano.FOO, msg.repeatedPackedNestedEnum[0]); 198764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(TestAllTypesNano.BAR, msg.repeatedPackedNestedEnum[1]); 198864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 198964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 199014dd1f02ac95f61087e311bf61c85047fb218a29Ulas Kirazci public void testNanoRepeatedPackedSerializedSize() throws Exception { 199114dd1f02ac95f61087e311bf61c85047fb218a29Ulas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 199214dd1f02ac95f61087e311bf61c85047fb218a29Ulas Kirazci msg.repeatedPackedInt32 = new int[] { 123, 789, 456 }; 199314dd1f02ac95f61087e311bf61c85047fb218a29Ulas Kirazci int msgSerializedSize = msg.getSerializedSize(); 199414dd1f02ac95f61087e311bf61c85047fb218a29Ulas Kirazci byte [] result = MessageNano.toByteArray(msg); 199514dd1f02ac95f61087e311bf61c85047fb218a29Ulas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 199614dd1f02ac95f61087e311bf61c85047fb218a29Ulas Kirazci assertTrue(msgSerializedSize == 11); 199714dd1f02ac95f61087e311bf61c85047fb218a29Ulas Kirazci assertEquals(result.length, msgSerializedSize); 199814dd1f02ac95f61087e311bf61c85047fb218a29Ulas Kirazci TestAllTypesNano msg2 = new TestAllTypesNano(); 199914dd1f02ac95f61087e311bf61c85047fb218a29Ulas Kirazci msg2.repeatedPackedInt32 = new int[] { 123, 789, 456 }; 200014dd1f02ac95f61087e311bf61c85047fb218a29Ulas Kirazci byte [] result2 = new byte[msgSerializedSize]; 200114dd1f02ac95f61087e311bf61c85047fb218a29Ulas Kirazci MessageNano.toByteArray(msg2, result2, 0, msgSerializedSize); 200214dd1f02ac95f61087e311bf61c85047fb218a29Ulas Kirazci 200314dd1f02ac95f61087e311bf61c85047fb218a29Ulas Kirazci // Check equal size and content. 200414dd1f02ac95f61087e311bf61c85047fb218a29Ulas Kirazci assertEquals(msgSerializedSize, msg2.getSerializedSize()); 200514dd1f02ac95f61087e311bf61c85047fb218a29Ulas Kirazci assertTrue(Arrays.equals(result, result2)); 200614dd1f02ac95f61087e311bf61c85047fb218a29Ulas Kirazci } 200714dd1f02ac95f61087e311bf61c85047fb218a29Ulas Kirazci 200864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedInt32ReMerge() throws Exception { 200964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 201064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedInt32 = new int[] { 234 }; 201164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result1 = MessageNano.toByteArray(msg); 201264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 201364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear().optionalInt32 = 789; 201464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result2 = MessageNano.toByteArray(msg); 201564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 201664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear().repeatedInt32 = new int[] { 123, 456 }; 201764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result3 = MessageNano.toByteArray(msg); 201864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 201964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Concatenate the three serializations and read as one message. 202064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = new byte[result1.length + result2.length + result3.length]; 202164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci System.arraycopy(result1, 0, result, 0, result1.length); 202264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci System.arraycopy(result2, 0, result, result1.length, result2.length); 202364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci System.arraycopy(result3, 0, result, result1.length + result2.length, result3.length); 202464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 202564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 202664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(789, newMsg.optionalInt32); 202764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(3, newMsg.repeatedInt32.length); 202864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(234, newMsg.repeatedInt32[0]); 202964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(123, newMsg.repeatedInt32[1]); 203064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(456, newMsg.repeatedInt32[2]); 203164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 203264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 203364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedNestedEnumReMerge() throws Exception { 203464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 203564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedNestedEnum = new int[] { TestAllTypesNano.FOO }; 203664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result1 = MessageNano.toByteArray(msg); 203764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 203864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear().optionalInt32 = 789; 203964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result2 = MessageNano.toByteArray(msg); 204064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 204164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear().repeatedNestedEnum = new int[] { TestAllTypesNano.BAR, TestAllTypesNano.FOO }; 204264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result3 = MessageNano.toByteArray(msg); 204364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 204464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Concatenate the three serializations and read as one message. 204564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = new byte[result1.length + result2.length + result3.length]; 204664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci System.arraycopy(result1, 0, result, 0, result1.length); 204764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci System.arraycopy(result2, 0, result, result1.length, result2.length); 204864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci System.arraycopy(result3, 0, result, result1.length + result2.length, result3.length); 204964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 205064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 205164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(789, newMsg.optionalInt32); 205264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(3, newMsg.repeatedNestedEnum.length); 205364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(TestAllTypesNano.FOO, newMsg.repeatedNestedEnum[0]); 205464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(TestAllTypesNano.BAR, newMsg.repeatedNestedEnum[1]); 205564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(TestAllTypesNano.FOO, newMsg.repeatedNestedEnum[2]); 205664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 205764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 205864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoRepeatedNestedMessageReMerge() throws Exception { 205964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 206064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano.NestedMessage nestedMsg0 = 206164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci new TestAllTypesNano.NestedMessage(); 206264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci nestedMsg0.bb = 0; 206364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano.NestedMessage nestedMsg1 = 206464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci new TestAllTypesNano.NestedMessage(); 206564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci nestedMsg1.bb = 1; 206664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano.NestedMessage nestedMsg2 = 206764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci new TestAllTypesNano.NestedMessage(); 206864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci nestedMsg2.bb = 2; 206964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 207064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.repeatedNestedMessage = new TestAllTypesNano.NestedMessage[] { nestedMsg0 }; 207164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result1 = MessageNano.toByteArray(msg); 207264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 207364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear().optionalInt32 = 789; 207464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result2 = MessageNano.toByteArray(msg); 207564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 207664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear().repeatedNestedMessage = 207764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci new TestAllTypesNano.NestedMessage[] { nestedMsg1, nestedMsg2 }; 207864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result3 = MessageNano.toByteArray(msg); 207964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 208064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Concatenate the three serializations and read as one message. 208164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = new byte[result1.length + result2.length + result3.length]; 208264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci System.arraycopy(result1, 0, result, 0, result1.length); 208364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci System.arraycopy(result2, 0, result, result1.length, result2.length); 208464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci System.arraycopy(result3, 0, result, result1.length + result2.length, result3.length); 208564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 208664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result); 208764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(789, newMsg.optionalInt32); 208864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(3, newMsg.repeatedNestedMessage.length); 208964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(nestedMsg0.bb, newMsg.repeatedNestedMessage[0].bb); 209064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(nestedMsg1.bb, newMsg.repeatedNestedMessage[1].bb); 209164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(nestedMsg2.bb, newMsg.repeatedNestedMessage[2].bb); 209264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 209364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 20948170787391efcb6cc6a8babc1cce35d5b1aff420Max Cai /** 2095624c448fbef20a1a2fad2289f622b468c25763d1Max Cai * Tests that code generation correctly wraps a single message into its outer 2096624c448fbef20a1a2fad2289f622b468c25763d1Max Cai * class. The class {@code SingleMessageNano} is imported from the outer 2097624c448fbef20a1a2fad2289f622b468c25763d1Max Cai * class {@code UnittestSingleNano}, whose name is implicit. Any error would 2098624c448fbef20a1a2fad2289f622b468c25763d1Max Cai * cause this method to fail compilation. 2099624c448fbef20a1a2fad2289f622b468c25763d1Max Cai */ 2100624c448fbef20a1a2fad2289f622b468c25763d1Max Cai public void testNanoSingle() throws Exception { 2101624c448fbef20a1a2fad2289f622b468c25763d1Max Cai SingleMessageNano msg = new SingleMessageNano(); 2102624c448fbef20a1a2fad2289f622b468c25763d1Max Cai } 2103624c448fbef20a1a2fad2289f622b468c25763d1Max Cai 2104624c448fbef20a1a2fad2289f622b468c25763d1Max Cai /** 2105624c448fbef20a1a2fad2289f622b468c25763d1Max Cai * Tests that code generation correctly skips generating the outer class if 2106624c448fbef20a1a2fad2289f622b468c25763d1Max Cai * unnecessary, letting a file-scope entity have the same name. The class 2107624c448fbef20a1a2fad2289f622b468c25763d1Max Cai * {@code MultipleNameClashNano} shares the same name with the file's outer 2108624c448fbef20a1a2fad2289f622b468c25763d1Max Cai * class defined explicitly, but the file contains no other entities and has 2109624c448fbef20a1a2fad2289f622b468c25763d1Max Cai * java_multiple_files set. Any error would cause this method to fail 2110624c448fbef20a1a2fad2289f622b468c25763d1Max Cai * compilation. 2111624c448fbef20a1a2fad2289f622b468c25763d1Max Cai */ 2112624c448fbef20a1a2fad2289f622b468c25763d1Max Cai public void testNanoMultipleNameClash() throws Exception { 2113624c448fbef20a1a2fad2289f622b468c25763d1Max Cai MultipleNameClashNano msg = new MultipleNameClashNano(); 2114624c448fbef20a1a2fad2289f622b468c25763d1Max Cai msg.field = 0; 2115624c448fbef20a1a2fad2289f622b468c25763d1Max Cai } 2116624c448fbef20a1a2fad2289f622b468c25763d1Max Cai 2117624c448fbef20a1a2fad2289f622b468c25763d1Max Cai /** 2118624c448fbef20a1a2fad2289f622b468c25763d1Max Cai * Tests that code generation correctly handles enums in different scopes in 2119624c448fbef20a1a2fad2289f622b468c25763d1Max Cai * a source file with the option java_multiple_files set to true. Any error 2120624c448fbef20a1a2fad2289f622b468c25763d1Max Cai * would cause this method to fail compilation. 2121624c448fbef20a1a2fad2289f622b468c25763d1Max Cai */ 2122624c448fbef20a1a2fad2289f622b468c25763d1Max Cai public void testNanoMultipleEnumScoping() throws Exception { 2123624c448fbef20a1a2fad2289f622b468c25763d1Max Cai FileScopeEnumRefNano msg1 = new FileScopeEnumRefNano(); 2124624c448fbef20a1a2fad2289f622b468c25763d1Max Cai msg1.enumField = UnittestMultipleNano.ONE; 2125624c448fbef20a1a2fad2289f622b468c25763d1Max Cai MessageScopeEnumRefNano msg2 = new MessageScopeEnumRefNano(); 2126624c448fbef20a1a2fad2289f622b468c25763d1Max Cai msg2.enumField = MessageScopeEnumRefNano.TWO; 2127624c448fbef20a1a2fad2289f622b468c25763d1Max Cai } 2128624c448fbef20a1a2fad2289f622b468c25763d1Max Cai 2129624c448fbef20a1a2fad2289f622b468c25763d1Max Cai /** 21308170787391efcb6cc6a8babc1cce35d5b1aff420Max Cai * Tests that code generation with mixed values of the java_multiple_files 21318170787391efcb6cc6a8babc1cce35d5b1aff420Max Cai * options between the main source file and the imported source files would 21328170787391efcb6cc6a8babc1cce35d5b1aff420Max Cai * generate correct references. Any error would cause this method to fail 21338170787391efcb6cc6a8babc1cce35d5b1aff420Max Cai * compilation. 21348170787391efcb6cc6a8babc1cce35d5b1aff420Max Cai */ 21358170787391efcb6cc6a8babc1cce35d5b1aff420Max Cai public void testNanoMultipleImportingNonMultiple() throws Exception { 21368170787391efcb6cc6a8babc1cce35d5b1aff420Max Cai UnittestImportNano.ImportMessageNano importMsg = new UnittestImportNano.ImportMessageNano(); 21378170787391efcb6cc6a8babc1cce35d5b1aff420Max Cai MultipleImportingNonMultipleNano1 nano1 = new MultipleImportingNonMultipleNano1(); 21388170787391efcb6cc6a8babc1cce35d5b1aff420Max Cai nano1.field = importMsg; 21398170787391efcb6cc6a8babc1cce35d5b1aff420Max Cai MultipleImportingNonMultipleNano2 nano2 = new MultipleImportingNonMultipleNano2(); 21408170787391efcb6cc6a8babc1cce35d5b1aff420Max Cai nano2.nano1 = nano1; 21418170787391efcb6cc6a8babc1cce35d5b1aff420Max Cai } 21428170787391efcb6cc6a8babc1cce35d5b1aff420Max Cai 214364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testNanoDefaults() throws Exception { 214464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci TestAllTypesNano msg = new TestAllTypesNano(); 214564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci for (int i = 0; i < 2; i++) { 214664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(41, msg.defaultInt32); 214764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(42, msg.defaultInt64); 214864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(43, msg.defaultUint32); 214964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(44, msg.defaultUint64); 215064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(-45, msg.defaultSint32); 215164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(46, msg.defaultSint64); 215264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(47, msg.defaultFixed32); 215364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(48, msg.defaultFixed64); 215464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(49, msg.defaultSfixed32); 215564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(-50, msg.defaultSfixed64); 215664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(51.5f == msg.defaultFloat); 215764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(52.0e3 == msg.defaultDouble); 215864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(true, msg.defaultBool); 215964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("hello", msg.defaultString); 216064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("world", new String(msg.defaultBytes, "UTF-8")); 216164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("dünya", msg.defaultStringNonascii); 216264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals("dünyab", new String(msg.defaultBytesNonascii, "UTF-8")); 216364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(TestAllTypesNano.BAR, msg.defaultNestedEnum); 216464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(NanoOuterClass.FOREIGN_NANO_BAR, msg.defaultForeignEnum); 216564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(UnittestImportNano.IMPORT_NANO_BAR, msg.defaultImportEnum); 21660f2ca89132ab81441f7eb351c7a053a8c8d9d1c3Chris Smith assertEquals(Float.POSITIVE_INFINITY, msg.defaultFloatInf); 21670f2ca89132ab81441f7eb351c7a053a8c8d9d1c3Chris Smith assertEquals(Float.NEGATIVE_INFINITY, msg.defaultFloatNegInf); 21680f2ca89132ab81441f7eb351c7a053a8c8d9d1c3Chris Smith assertEquals(Float.NaN, msg.defaultFloatNan); 21690f2ca89132ab81441f7eb351c7a053a8c8d9d1c3Chris Smith assertEquals(Double.POSITIVE_INFINITY, msg.defaultDoubleInf); 21700f2ca89132ab81441f7eb351c7a053a8c8d9d1c3Chris Smith assertEquals(Double.NEGATIVE_INFINITY, msg.defaultDoubleNegInf); 21710f2ca89132ab81441f7eb351c7a053a8c8d9d1c3Chris Smith assertEquals(Double.NaN, msg.defaultDoubleNan); 217264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 217364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Default values are not output, except for required fields. 217464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte [] result = MessageNano.toByteArray(msg); 217564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int msgSerializedSize = msg.getSerializedSize(); 217664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 217764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(msgSerializedSize == 3); 217864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(result.length, msgSerializedSize); 217964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci msg.clear(); 218064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 218164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 218264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 218335d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci public void testNanoWithHasParseFrom() throws Exception { 218435d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci TestAllTypesNanoHas msg = null; 218535d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci // Test false on creation, after clear and upon empty parse. 218635d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci for (int i = 0; i < 3; i++) { 218735d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci if (i == 0) { 218835d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci msg = new TestAllTypesNanoHas(); 218935d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci } else if (i == 1) { 219035d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci msg.clear(); 219135d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci } else if (i == 2) { 219235d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci msg = TestAllTypesNanoHas.parseFrom(new byte[0]); 219335d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci } 219435d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertFalse(msg.hasOptionalInt32); 219535d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertFalse(msg.hasOptionalString); 219635d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertFalse(msg.hasOptionalBytes); 219735d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertFalse(msg.hasOptionalNestedEnum); 219835d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertFalse(msg.hasDefaultInt32); 219935d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertFalse(msg.hasDefaultString); 220035d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertFalse(msg.hasDefaultBytes); 220135d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertFalse(msg.hasDefaultFloatNan); 220235d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertFalse(msg.hasDefaultNestedEnum); 220335d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertFalse(msg.hasId); 220435d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci msg.optionalInt32 = 123; 220535d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci msg.optionalNestedMessage = new TestAllTypesNanoHas.NestedMessage(); 220635d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci msg.optionalNestedMessage.bb = 2; 220735d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci msg.optionalNestedEnum = TestAllTypesNano.BAZ; 220835d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci } 220935d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci 221035d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci byte [] result = MessageNano.toByteArray(msg); 221135d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci int msgSerializedSize = msg.getSerializedSize(); 221235d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 221335d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertTrue(msgSerializedSize == 13); 221435d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertEquals(result.length, msgSerializedSize); 221535d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci 221635d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci // Has fields true upon parse. 221735d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci TestAllTypesNanoHas newMsg = TestAllTypesNanoHas.parseFrom(result); 221835d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertEquals(123, newMsg.optionalInt32); 221935d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertTrue(newMsg.hasOptionalInt32); 222035d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertEquals(2, newMsg.optionalNestedMessage.bb); 222135d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertTrue(newMsg.optionalNestedMessage.hasBb); 222235d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertEquals(TestAllTypesNanoHas.BAZ, newMsg.optionalNestedEnum); 222335d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertTrue(newMsg.hasOptionalNestedEnum); 222435d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci } 222535d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci 222635d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci public void testNanoWithHasSerialize() throws Exception { 222735d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci TestAllTypesNanoHas msg = new TestAllTypesNanoHas(); 222835d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci msg.hasOptionalInt32 = true; 222935d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci msg.hasOptionalString = true; 223035d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci msg.hasOptionalBytes = true; 223135d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci msg.optionalNestedMessage = new TestAllTypesNanoHas.NestedMessage(); 223235d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci msg.optionalNestedMessage.hasBb = true; 223335d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci msg.hasOptionalNestedEnum = true; 223435d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci msg.hasDefaultInt32 = true; 223535d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci msg.hasDefaultString = true; 223635d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci msg.hasDefaultBytes = true; 223735d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci msg.hasDefaultFloatNan = true; 223835d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci msg.hasDefaultNestedEnum = true; 223935d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci 224035d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci byte [] result = MessageNano.toByteArray(msg); 224135d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci int msgSerializedSize = msg.getSerializedSize(); 224235d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertEquals(result.length, msgSerializedSize); 224335d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci 224435d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci // Now deserialize and find that all fields are set and equal to their defaults. 224535d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci TestAllTypesNanoHas newMsg = TestAllTypesNanoHas.parseFrom(result); 224635d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertTrue(newMsg.hasOptionalInt32); 224735d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertTrue(newMsg.hasOptionalString); 224835d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertTrue(newMsg.hasOptionalBytes); 224935d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertTrue(newMsg.optionalNestedMessage.hasBb); 225035d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertTrue(newMsg.hasOptionalNestedEnum); 225135d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertTrue(newMsg.hasDefaultInt32); 225235d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertTrue(newMsg.hasDefaultString); 225335d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertTrue(newMsg.hasDefaultBytes); 225435d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertTrue(newMsg.hasDefaultFloatNan); 225535d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertTrue(newMsg.hasDefaultNestedEnum); 225635d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertTrue(newMsg.hasId); 225735d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertEquals(0, newMsg.optionalInt32); 225835d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertEquals(0, newMsg.optionalString.length()); 225935d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertEquals(0, newMsg.optionalBytes.length); 226035d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertEquals(0, newMsg.optionalNestedMessage.bb); 226135d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertEquals(TestAllTypesNanoHas.FOO, newMsg.optionalNestedEnum); 226235d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertEquals(41, newMsg.defaultInt32); 226335d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertEquals("hello", newMsg.defaultString); 226435d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertEquals("world", new String(newMsg.defaultBytes, "UTF-8")); 226535d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertEquals(TestAllTypesNanoHas.BAR, newMsg.defaultNestedEnum); 226635d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertEquals(Float.NaN, newMsg.defaultFloatNan); 226735d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci assertEquals(0, newMsg.id); 226835d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci } 226935d9fd84ff1d9ecdb91156b757cc9fdcc3f25249Ulas Kirazci 2270e74fe623e115237968a3de1143d7cdb4df710858Max Cai public void testNanoWithAccessorsBasic() throws Exception { 2271e74fe623e115237968a3de1143d7cdb4df710858Max Cai TestNanoAccessors msg = new TestNanoAccessors(); 2272e74fe623e115237968a3de1143d7cdb4df710858Max Cai 2273e74fe623e115237968a3de1143d7cdb4df710858Max Cai // Makes sure required and repeated fields are still public fields 2274e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.id = 3; 2275e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.repeatedBytes = new byte[2][3]; 2276e74fe623e115237968a3de1143d7cdb4df710858Max Cai 2277e74fe623e115237968a3de1143d7cdb4df710858Max Cai // Test accessors 2278e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertEquals(0, msg.getOptionalInt32()); 2279e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertFalse(msg.hasOptionalInt32()); 2280e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.setOptionalInt32(135); 2281e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertEquals(135, msg.getOptionalInt32()); 2282e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertTrue(msg.hasOptionalInt32()); 2283e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.clearOptionalInt32(); 2284e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertFalse(msg.hasOptionalInt32()); 2285e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.setOptionalInt32(0); // default value 2286e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertTrue(msg.hasOptionalInt32()); 2287e74fe623e115237968a3de1143d7cdb4df710858Max Cai 2288e74fe623e115237968a3de1143d7cdb4df710858Max Cai // Test NPE 2289e74fe623e115237968a3de1143d7cdb4df710858Max Cai try { 2290e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.setOptionalBytes(null); 2291e74fe623e115237968a3de1143d7cdb4df710858Max Cai fail(); 2292e74fe623e115237968a3de1143d7cdb4df710858Max Cai } catch (NullPointerException expected) {} 2293e74fe623e115237968a3de1143d7cdb4df710858Max Cai try { 2294e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.setOptionalString(null); 2295e74fe623e115237968a3de1143d7cdb4df710858Max Cai fail(); 2296e74fe623e115237968a3de1143d7cdb4df710858Max Cai } catch (NullPointerException expected) {} 2297e74fe623e115237968a3de1143d7cdb4df710858Max Cai try { 2298e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.setOptionalNestedMessage(null); 2299e74fe623e115237968a3de1143d7cdb4df710858Max Cai fail(); 2300e74fe623e115237968a3de1143d7cdb4df710858Max Cai } catch (NullPointerException expected) {} 2301e74fe623e115237968a3de1143d7cdb4df710858Max Cai 2302e74fe623e115237968a3de1143d7cdb4df710858Max Cai // Test has bit on bytes field with defaults and clear() re-clones the default array 2303e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertFalse(msg.hasDefaultBytes()); 2304e74fe623e115237968a3de1143d7cdb4df710858Max Cai byte[] defaultBytes = msg.getDefaultBytes(); 2305e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.setDefaultBytes(defaultBytes); 2306e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertTrue(msg.hasDefaultBytes()); 2307e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.clearDefaultBytes(); 2308e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertFalse(msg.hasDefaultBytes()); 2309e74fe623e115237968a3de1143d7cdb4df710858Max Cai defaultBytes[0]++; // modify original array 2310e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertFalse(Arrays.equals(defaultBytes, msg.getDefaultBytes())); 2311e74fe623e115237968a3de1143d7cdb4df710858Max Cai 2312e74fe623e115237968a3de1143d7cdb4df710858Max Cai // Test has bits that require additional bit fields 2313e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertFalse(msg.hasBitFieldCheck()); 2314e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.setBitFieldCheck(0); 2315e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertTrue(msg.hasBitFieldCheck()); 2316e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertFalse(msg.hasBeforeBitFieldCheck()); // checks bit field does not leak 2317e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertFalse(msg.hasAfterBitFieldCheck()); 2318e74fe623e115237968a3de1143d7cdb4df710858Max Cai 2319e74fe623e115237968a3de1143d7cdb4df710858Max Cai // Test clear() clears has bits 2320e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.setOptionalString("hi"); 2321e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.setDefaultString("there"); 2322e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.clear(); 2323e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertFalse(msg.hasOptionalString()); 2324e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertFalse(msg.hasDefaultString()); 2325e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertFalse(msg.hasBitFieldCheck()); 2326b15a1b379f896e371ca3375bdf51dd4a9a0268afMax Cai 2327b15a1b379f896e371ca3375bdf51dd4a9a0268afMax Cai // Test set() and clear() returns itself (compiles = success) 2328b15a1b379f896e371ca3375bdf51dd4a9a0268afMax Cai msg.clear() 2329b15a1b379f896e371ca3375bdf51dd4a9a0268afMax Cai .setOptionalInt32(3) 2330b15a1b379f896e371ca3375bdf51dd4a9a0268afMax Cai .clearDefaultBytes() 2331b15a1b379f896e371ca3375bdf51dd4a9a0268afMax Cai .setOptionalString("4"); 2332e74fe623e115237968a3de1143d7cdb4df710858Max Cai } 2333e74fe623e115237968a3de1143d7cdb4df710858Max Cai 2334e74fe623e115237968a3de1143d7cdb4df710858Max Cai public void testNanoWithAccessorsParseFrom() throws Exception { 2335e74fe623e115237968a3de1143d7cdb4df710858Max Cai TestNanoAccessors msg = null; 2336e74fe623e115237968a3de1143d7cdb4df710858Max Cai // Test false on creation, after clear and upon empty parse. 2337e74fe623e115237968a3de1143d7cdb4df710858Max Cai for (int i = 0; i < 3; i++) { 2338e74fe623e115237968a3de1143d7cdb4df710858Max Cai if (i == 0) { 2339e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg = new TestNanoAccessors(); 2340e74fe623e115237968a3de1143d7cdb4df710858Max Cai } else if (i == 1) { 2341e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.clear(); 2342e74fe623e115237968a3de1143d7cdb4df710858Max Cai } else if (i == 2) { 2343e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg = TestNanoAccessors.parseFrom(new byte[0]); 2344e74fe623e115237968a3de1143d7cdb4df710858Max Cai } 2345e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertFalse(msg.hasOptionalInt32()); 2346e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertFalse(msg.hasOptionalString()); 2347e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertFalse(msg.hasOptionalBytes()); 2348e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertFalse(msg.hasOptionalNestedEnum()); 2349e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertFalse(msg.hasDefaultInt32()); 2350e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertFalse(msg.hasDefaultString()); 2351e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertFalse(msg.hasDefaultBytes()); 2352e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertFalse(msg.hasDefaultFloatNan()); 2353e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertFalse(msg.hasDefaultNestedEnum()); 2354e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.setOptionalNestedMessage(new TestNanoAccessors.NestedMessage()); 2355e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.getOptionalNestedMessage().setBb(2); 2356e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.setOptionalNestedEnum(TestNanoAccessors.BAZ); 2357e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.setDefaultInt32(msg.getDefaultInt32()); 2358e74fe623e115237968a3de1143d7cdb4df710858Max Cai } 2359e74fe623e115237968a3de1143d7cdb4df710858Max Cai 2360e74fe623e115237968a3de1143d7cdb4df710858Max Cai byte [] result = MessageNano.toByteArray(msg); 2361e74fe623e115237968a3de1143d7cdb4df710858Max Cai int msgSerializedSize = msg.getSerializedSize(); 2362e74fe623e115237968a3de1143d7cdb4df710858Max Cai //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length); 2363e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertTrue(msgSerializedSize == 14); 2364e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertEquals(result.length, msgSerializedSize); 2365e74fe623e115237968a3de1143d7cdb4df710858Max Cai 2366e74fe623e115237968a3de1143d7cdb4df710858Max Cai // Has fields true upon parse. 2367e74fe623e115237968a3de1143d7cdb4df710858Max Cai TestNanoAccessors newMsg = TestNanoAccessors.parseFrom(result); 2368e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertEquals(2, newMsg.getOptionalNestedMessage().getBb()); 2369e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertTrue(newMsg.getOptionalNestedMessage().hasBb()); 2370e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertEquals(TestNanoAccessors.BAZ, newMsg.getOptionalNestedEnum()); 2371e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertTrue(newMsg.hasOptionalNestedEnum()); 2372e74fe623e115237968a3de1143d7cdb4df710858Max Cai 2373e74fe623e115237968a3de1143d7cdb4df710858Max Cai // Has field true on fields with explicit default values from wire. 2374e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertTrue(newMsg.hasDefaultInt32()); 2375e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertEquals(41, newMsg.getDefaultInt32()); 2376e74fe623e115237968a3de1143d7cdb4df710858Max Cai } 2377e74fe623e115237968a3de1143d7cdb4df710858Max Cai 2378e74fe623e115237968a3de1143d7cdb4df710858Max Cai public void testNanoWithAccessorsSerialize() throws Exception { 2379e74fe623e115237968a3de1143d7cdb4df710858Max Cai TestNanoAccessors msg = new TestNanoAccessors(); 2380e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.setOptionalInt32(msg.getOptionalInt32()); 2381e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.setOptionalString(msg.getOptionalString()); 2382e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.setOptionalBytes(msg.getOptionalBytes()); 2383e74fe623e115237968a3de1143d7cdb4df710858Max Cai TestNanoAccessors.NestedMessage nestedMessage = new TestNanoAccessors.NestedMessage(); 2384e74fe623e115237968a3de1143d7cdb4df710858Max Cai nestedMessage.setBb(nestedMessage.getBb()); 2385e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.setOptionalNestedMessage(nestedMessage); 2386e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.setOptionalNestedEnum(msg.getOptionalNestedEnum()); 2387e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.setDefaultInt32(msg.getDefaultInt32()); 2388e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.setDefaultString(msg.getDefaultString()); 2389e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.setDefaultBytes(msg.getDefaultBytes()); 2390e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.setDefaultFloatNan(msg.getDefaultFloatNan()); 2391e74fe623e115237968a3de1143d7cdb4df710858Max Cai msg.setDefaultNestedEnum(msg.getDefaultNestedEnum()); 2392e74fe623e115237968a3de1143d7cdb4df710858Max Cai 2393e74fe623e115237968a3de1143d7cdb4df710858Max Cai byte [] result = MessageNano.toByteArray(msg); 2394e74fe623e115237968a3de1143d7cdb4df710858Max Cai int msgSerializedSize = msg.getSerializedSize(); 2395e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertEquals(result.length, msgSerializedSize); 2396e74fe623e115237968a3de1143d7cdb4df710858Max Cai 2397e74fe623e115237968a3de1143d7cdb4df710858Max Cai // Now deserialize and find that all fields are set and equal to their defaults. 2398e74fe623e115237968a3de1143d7cdb4df710858Max Cai TestNanoAccessors newMsg = TestNanoAccessors.parseFrom(result); 2399e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertTrue(newMsg.hasOptionalInt32()); 2400e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertTrue(newMsg.hasOptionalString()); 2401e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertTrue(newMsg.hasOptionalBytes()); 2402e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertTrue(newMsg.hasOptionalNestedMessage()); 2403e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertTrue(newMsg.getOptionalNestedMessage().hasBb()); 2404e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertTrue(newMsg.hasOptionalNestedEnum()); 2405e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertTrue(newMsg.hasDefaultInt32()); 2406e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertTrue(newMsg.hasDefaultString()); 2407e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertTrue(newMsg.hasDefaultBytes()); 2408e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertTrue(newMsg.hasDefaultFloatNan()); 2409e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertTrue(newMsg.hasDefaultNestedEnum()); 2410e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertEquals(0, newMsg.getOptionalInt32()); 2411e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertEquals(0, newMsg.getOptionalString().length()); 2412e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertEquals(0, newMsg.getOptionalBytes().length); 2413e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertEquals(0, newMsg.getOptionalNestedMessage().getBb()); 2414e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertEquals(TestNanoAccessors.FOO, newMsg.getOptionalNestedEnum()); 2415e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertEquals(41, newMsg.getDefaultInt32()); 2416e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertEquals("hello", newMsg.getDefaultString()); 2417e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertEquals("world", new String(newMsg.getDefaultBytes(), "UTF-8")); 2418e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertEquals(TestNanoAccessors.BAR, newMsg.getDefaultNestedEnum()); 2419e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertEquals(Float.NaN, newMsg.getDefaultFloatNan()); 2420e74fe623e115237968a3de1143d7cdb4df710858Max Cai assertEquals(0, newMsg.id); 2421e74fe623e115237968a3de1143d7cdb4df710858Max Cai } 2422e74fe623e115237968a3de1143d7cdb4df710858Max Cai 242326266cd4660ffe1f3d6015b715713ee654c5b936Max Cai public void testNanoJavaEnumStyle() throws Exception { 242426266cd4660ffe1f3d6015b715713ee654c5b936Max Cai EnumClassNanos.EnumClassNano msg = new EnumClassNanos.EnumClassNano(); 242526266cd4660ffe1f3d6015b715713ee654c5b936Max Cai assertEquals(EnumClassNanos.FileScopeEnum.ONE, msg.one); 242626266cd4660ffe1f3d6015b715713ee654c5b936Max Cai assertEquals(EnumClassNanos.EnumClassNano.MessageScopeEnum.TWO, msg.two); 242726266cd4660ffe1f3d6015b715713ee654c5b936Max Cai 242826266cd4660ffe1f3d6015b715713ee654c5b936Max Cai EnumClassNanoMultiple msg2 = new EnumClassNanoMultiple(); 242926266cd4660ffe1f3d6015b715713ee654c5b936Max Cai assertEquals(FileScopeEnumMultiple.THREE, msg2.three); 243026266cd4660ffe1f3d6015b715713ee654c5b936Max Cai assertEquals(EnumClassNanoMultiple.MessageScopeEnumMultiple.FOUR, msg2.four); 243126266cd4660ffe1f3d6015b715713ee654c5b936Max Cai } 243226266cd4660ffe1f3d6015b715713ee654c5b936Max Cai 243364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci /** 24340f2ca89132ab81441f7eb351c7a053a8c8d9d1c3Chris Smith * Tests that fields with a default value of NaN are not serialized when 24350f2ca89132ab81441f7eb351c7a053a8c8d9d1c3Chris Smith * set to NaN. This is a special case as NaN != NaN, so normal equality 24360f2ca89132ab81441f7eb351c7a053a8c8d9d1c3Chris Smith * checks don't work. 24370f2ca89132ab81441f7eb351c7a053a8c8d9d1c3Chris Smith */ 24380f2ca89132ab81441f7eb351c7a053a8c8d9d1c3Chris Smith public void testNanoNotANumberDefaults() throws Exception { 24390f2ca89132ab81441f7eb351c7a053a8c8d9d1c3Chris Smith TestAllTypesNano msg = new TestAllTypesNano(); 24400f2ca89132ab81441f7eb351c7a053a8c8d9d1c3Chris Smith msg.defaultDoubleNan = 0; 24410f2ca89132ab81441f7eb351c7a053a8c8d9d1c3Chris Smith msg.defaultFloatNan = 0; 24420f2ca89132ab81441f7eb351c7a053a8c8d9d1c3Chris Smith byte[] result = MessageNano.toByteArray(msg); 24430f2ca89132ab81441f7eb351c7a053a8c8d9d1c3Chris Smith int msgSerializedSize = msg.getSerializedSize(); 24440f2ca89132ab81441f7eb351c7a053a8c8d9d1c3Chris Smith assertTrue(msgSerializedSize > 3); 24450f2ca89132ab81441f7eb351c7a053a8c8d9d1c3Chris Smith 24460f2ca89132ab81441f7eb351c7a053a8c8d9d1c3Chris Smith msg.defaultDoubleNan = Double.NaN; 24470f2ca89132ab81441f7eb351c7a053a8c8d9d1c3Chris Smith msg.defaultFloatNan = Float.NaN; 24480f2ca89132ab81441f7eb351c7a053a8c8d9d1c3Chris Smith result = MessageNano.toByteArray(msg); 24490f2ca89132ab81441f7eb351c7a053a8c8d9d1c3Chris Smith msgSerializedSize = msg.getSerializedSize(); 24500f2ca89132ab81441f7eb351c7a053a8c8d9d1c3Chris Smith assertEquals(3, msgSerializedSize); 24510f2ca89132ab81441f7eb351c7a053a8c8d9d1c3Chris Smith } 24520f2ca89132ab81441f7eb351c7a053a8c8d9d1c3Chris Smith 24530f2ca89132ab81441f7eb351c7a053a8c8d9d1c3Chris Smith /** 245464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci * Test that a bug in skipRawBytes() has been fixed: if the skip skips 245564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci * exactly up to a limit, this should not break things. 245664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci */ 245764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testSkipRawBytesBug() throws Exception { 245864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte[] rawBytes = new byte[] { 1, 2 }; 245964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci CodedInputByteBufferNano input = CodedInputByteBufferNano.newInstance(rawBytes); 246064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 246164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int limit = input.pushLimit(1); 246264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci input.skipRawBytes(1); 246364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci input.popLimit(limit); 246464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(2, input.readRawByte()); 246564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 246664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 246764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci /** 246864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci * Test that a bug in skipRawBytes() has been fixed: if the skip skips 246964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci * past the end of a buffer with a limit that has been set past the end of 247064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci * that buffer, this should not break things. 247164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci */ 247264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci public void testSkipRawBytesPastEndOfBufferWithLimit() throws Exception { 247364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci byte[] rawBytes = new byte[] { 1, 2, 3, 4, 5 }; 247464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci CodedInputByteBufferNano input = CodedInputByteBufferNano.newInstance(rawBytes); 247564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 247664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int limit = input.pushLimit(4); 247764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // In order to expose the bug we need to read at least one byte to prime the 247864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // buffer inside the CodedInputStream. 247964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(1, input.readRawByte()); 248064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci // Skip to the end of the limit. 248164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci input.skipRawBytes(3); 248264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertTrue(input.isAtEnd()); 248364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci input.popLimit(limit); 248464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci assertEquals(5, input.readRawByte()); 248564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci } 248647107914acbad70ff4db1664d3664ccc994315afAndrew Flynn 248747107914acbad70ff4db1664d3664ccc994315afAndrew Flynn // Test a smattering of various proto types for printing 248847107914acbad70ff4db1664d3664ccc994315afAndrew Flynn public void testMessageNanoPrinter() { 248947107914acbad70ff4db1664d3664ccc994315afAndrew Flynn TestAllTypesNano msg = new TestAllTypesNano(); 249047107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.optionalInt32 = 14; 249147107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.optionalFloat = 42.3f; 249247107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.optionalString = "String \"with' both quotes"; 249347107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.optionalBytes = new byte[5]; 249447107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.optionalGroup = new TestAllTypesNano.OptionalGroup(); 249547107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.optionalGroup.a = 15; 249647107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.repeatedInt64 = new long[2]; 249747107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.repeatedInt64[0] = 1L; 249847107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.repeatedInt64[1] = -1L; 249947107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.repeatedBytes = new byte[2][]; 250047107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.repeatedBytes[1] = new byte[5]; 250147107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.repeatedGroup = new TestAllTypesNano.RepeatedGroup[2]; 250247107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.repeatedGroup[0] = new TestAllTypesNano.RepeatedGroup(); 250347107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.repeatedGroup[0].a = -27; 250447107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.repeatedGroup[1] = new TestAllTypesNano.RepeatedGroup(); 250547107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.repeatedGroup[1].a = -72; 250647107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.optionalNestedMessage = new TestAllTypesNano.NestedMessage(); 250747107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.optionalNestedMessage.bb = 7; 250847107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.repeatedNestedMessage = new TestAllTypesNano.NestedMessage[2]; 250947107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.repeatedNestedMessage[0] = new TestAllTypesNano.NestedMessage(); 251047107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.repeatedNestedMessage[0].bb = 77; 251147107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.repeatedNestedMessage[1] = new TestAllTypesNano.NestedMessage(); 251247107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.repeatedNestedMessage[1].bb = 88; 251347107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.optionalNestedEnum = TestAllTypesNano.BAZ; 251447107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.repeatedNestedEnum = new int[2]; 251547107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.repeatedNestedEnum[0] = TestAllTypesNano.BAR; 251647107914acbad70ff4db1664d3664ccc994315afAndrew Flynn msg.repeatedNestedEnum[1] = TestAllTypesNano.FOO; 251747107914acbad70ff4db1664d3664ccc994315afAndrew Flynn 251847107914acbad70ff4db1664d3664ccc994315afAndrew Flynn String protoPrint = msg.toString(); 251947107914acbad70ff4db1664d3664ccc994315afAndrew Flynn assertTrue(protoPrint.contains("TestAllTypesNano <")); 252047107914acbad70ff4db1664d3664ccc994315afAndrew Flynn assertTrue(protoPrint.contains(" optional_int32: 14")); 252147107914acbad70ff4db1664d3664ccc994315afAndrew Flynn assertTrue(protoPrint.contains(" optional_float: 42.3")); 252247107914acbad70ff4db1664d3664ccc994315afAndrew Flynn assertTrue(protoPrint.contains(" optional_double: 0.0")); 252347107914acbad70ff4db1664d3664ccc994315afAndrew Flynn assertTrue(protoPrint.contains(" optional_string: \"String \\u0022with\\u0027 both quotes\"")); 252447107914acbad70ff4db1664d3664ccc994315afAndrew Flynn assertTrue(protoPrint.contains(" optional_bytes: [B@")); 252547107914acbad70ff4db1664d3664ccc994315afAndrew Flynn assertTrue(protoPrint.contains(" optionalGroup <\n a: 15\n >")); 252647107914acbad70ff4db1664d3664ccc994315afAndrew Flynn 252747107914acbad70ff4db1664d3664ccc994315afAndrew Flynn assertTrue(protoPrint.contains(" repeated_int64: 1")); 252847107914acbad70ff4db1664d3664ccc994315afAndrew Flynn assertTrue(protoPrint.contains(" repeated_int64: -1")); 252947107914acbad70ff4db1664d3664ccc994315afAndrew Flynn assertTrue(protoPrint.contains(" repeated_bytes: null\n repeated_bytes: [B@")); 253047107914acbad70ff4db1664d3664ccc994315afAndrew Flynn assertTrue(protoPrint.contains(" repeatedGroup <\n a: -27\n >\n" 253147107914acbad70ff4db1664d3664ccc994315afAndrew Flynn + " repeatedGroup <\n a: -72\n >")); 253247107914acbad70ff4db1664d3664ccc994315afAndrew Flynn assertTrue(protoPrint.contains(" optionalNestedMessage <\n bb: 7\n >")); 253347107914acbad70ff4db1664d3664ccc994315afAndrew Flynn assertTrue(protoPrint.contains(" repeatedNestedMessage <\n bb: 77\n >\n" 253447107914acbad70ff4db1664d3664ccc994315afAndrew Flynn + " repeatedNestedMessage <\n bb: 88\n >")); 253547107914acbad70ff4db1664d3664ccc994315afAndrew Flynn assertTrue(protoPrint.contains(" optional_nested_enum: 3")); 253647107914acbad70ff4db1664d3664ccc994315afAndrew Flynn assertTrue(protoPrint.contains(" repeated_nested_enum: 2\n repeated_nested_enum: 1")); 253747107914acbad70ff4db1664d3664ccc994315afAndrew Flynn assertTrue(protoPrint.contains(" default_int32: 41")); 253847107914acbad70ff4db1664d3664ccc994315afAndrew Flynn assertTrue(protoPrint.contains(" default_string: \"hello\"")); 253947107914acbad70ff4db1664d3664ccc994315afAndrew Flynn } 25400e055f079f53b07de3705838a7b4742ce56839f8Brian Duff 25410e055f079f53b07de3705838a7b4742ce56839f8Brian Duff public void testExtensions() throws Exception { 25420e055f079f53b07de3705838a7b4742ce56839f8Brian Duff Extensions.ExtendableMessage message = new Extensions.ExtendableMessage(); 25430e055f079f53b07de3705838a7b4742ce56839f8Brian Duff message.field = 5; 25440e055f079f53b07de3705838a7b4742ce56839f8Brian Duff message.setExtension(Extensions.someString, "Hello World!"); 25450e055f079f53b07de3705838a7b4742ce56839f8Brian Duff message.setExtension(Extensions.someBool, true); 25460e055f079f53b07de3705838a7b4742ce56839f8Brian Duff message.setExtension(Extensions.someInt, 42); 25470e055f079f53b07de3705838a7b4742ce56839f8Brian Duff message.setExtension(Extensions.someLong, 124234234234L); 25480e055f079f53b07de3705838a7b4742ce56839f8Brian Duff message.setExtension(Extensions.someFloat, 42.0f); 25490e055f079f53b07de3705838a7b4742ce56839f8Brian Duff message.setExtension(Extensions.someDouble, 422222.0); 25500e055f079f53b07de3705838a7b4742ce56839f8Brian Duff message.setExtension(Extensions.someEnum, Extensions.FIRST_VALUE); 25510e055f079f53b07de3705838a7b4742ce56839f8Brian Duff AnotherMessage another = new AnotherMessage(); 25520e055f079f53b07de3705838a7b4742ce56839f8Brian Duff another.string = "Foo"; 25530e055f079f53b07de3705838a7b4742ce56839f8Brian Duff another.value = true; 25540e055f079f53b07de3705838a7b4742ce56839f8Brian Duff message.setExtension(Extensions.someMessage, another); 25550e055f079f53b07de3705838a7b4742ce56839f8Brian Duff 25560e055f079f53b07de3705838a7b4742ce56839f8Brian Duff message.setExtension(Extensions.someRepeatedString, list("a", "bee", "seeya")); 25570e055f079f53b07de3705838a7b4742ce56839f8Brian Duff message.setExtension(Extensions.someRepeatedBool, list(true, false, true)); 25580e055f079f53b07de3705838a7b4742ce56839f8Brian Duff message.setExtension(Extensions.someRepeatedInt, list(4, 8, 15, 16, 23, 42)); 25590e055f079f53b07de3705838a7b4742ce56839f8Brian Duff message.setExtension(Extensions.someRepeatedLong, list(4L, 8L, 15L, 16L, 23L, 42L)); 25600e055f079f53b07de3705838a7b4742ce56839f8Brian Duff message.setExtension(Extensions.someRepeatedFloat, list(1.0f, 3.0f)); 25610e055f079f53b07de3705838a7b4742ce56839f8Brian Duff message.setExtension(Extensions.someRepeatedDouble, list(55.133, 3.14159)); 25620e055f079f53b07de3705838a7b4742ce56839f8Brian Duff message.setExtension(Extensions.someRepeatedEnum, list(Extensions.FIRST_VALUE, 25630e055f079f53b07de3705838a7b4742ce56839f8Brian Duff Extensions.SECOND_VALUE)); 25640e055f079f53b07de3705838a7b4742ce56839f8Brian Duff AnotherMessage second = new AnotherMessage(); 25650e055f079f53b07de3705838a7b4742ce56839f8Brian Duff second.string = "Whee"; 25660e055f079f53b07de3705838a7b4742ce56839f8Brian Duff second.value = false; 25670e055f079f53b07de3705838a7b4742ce56839f8Brian Duff message.setExtension(Extensions.someRepeatedMessage, list(another, second)); 25680e055f079f53b07de3705838a7b4742ce56839f8Brian Duff 25690e055f079f53b07de3705838a7b4742ce56839f8Brian Duff byte[] data = MessageNano.toByteArray(message); 25700e055f079f53b07de3705838a7b4742ce56839f8Brian Duff 25710e055f079f53b07de3705838a7b4742ce56839f8Brian Duff Extensions.ExtendableMessage deserialized = Extensions.ExtendableMessage.parseFrom(data); 25720e055f079f53b07de3705838a7b4742ce56839f8Brian Duff assertEquals(5, deserialized.field); 25730e055f079f53b07de3705838a7b4742ce56839f8Brian Duff assertEquals("Hello World!", deserialized.getExtension(Extensions.someString)); 25740e055f079f53b07de3705838a7b4742ce56839f8Brian Duff assertEquals(Boolean.TRUE, deserialized.getExtension(Extensions.someBool)); 25750e055f079f53b07de3705838a7b4742ce56839f8Brian Duff assertEquals(Integer.valueOf(42), deserialized.getExtension(Extensions.someInt)); 25760e055f079f53b07de3705838a7b4742ce56839f8Brian Duff assertEquals(Long.valueOf(124234234234L), deserialized.getExtension(Extensions.someLong)); 25770e055f079f53b07de3705838a7b4742ce56839f8Brian Duff assertEquals(Float.valueOf(42.0f), deserialized.getExtension(Extensions.someFloat)); 25780e055f079f53b07de3705838a7b4742ce56839f8Brian Duff assertEquals(Double.valueOf(422222.0), deserialized.getExtension(Extensions.someDouble)); 25790e055f079f53b07de3705838a7b4742ce56839f8Brian Duff assertEquals(Integer.valueOf(Extensions.FIRST_VALUE), 25800e055f079f53b07de3705838a7b4742ce56839f8Brian Duff deserialized.getExtension(Extensions.someEnum)); 25810e055f079f53b07de3705838a7b4742ce56839f8Brian Duff assertEquals(another.string, deserialized.getExtension(Extensions.someMessage).string); 25820e055f079f53b07de3705838a7b4742ce56839f8Brian Duff assertEquals(another.value, deserialized.getExtension(Extensions.someMessage).value); 25830e055f079f53b07de3705838a7b4742ce56839f8Brian Duff assertEquals(list("a", "bee", "seeya"), deserialized.getExtension(Extensions.someRepeatedString)); 25840e055f079f53b07de3705838a7b4742ce56839f8Brian Duff assertEquals(list(true, false, true), deserialized.getExtension(Extensions.someRepeatedBool)); 25850e055f079f53b07de3705838a7b4742ce56839f8Brian Duff assertEquals(list(4, 8, 15, 16, 23, 42), deserialized.getExtension(Extensions.someRepeatedInt)); 25860e055f079f53b07de3705838a7b4742ce56839f8Brian Duff assertEquals(list(4L, 8L, 15L, 16L, 23L, 42L), deserialized.getExtension(Extensions.someRepeatedLong)); 25870e055f079f53b07de3705838a7b4742ce56839f8Brian Duff assertEquals(list(1.0f, 3.0f), deserialized.getExtension(Extensions.someRepeatedFloat)); 25880e055f079f53b07de3705838a7b4742ce56839f8Brian Duff assertEquals(list(55.133, 3.14159), deserialized.getExtension(Extensions.someRepeatedDouble)); 25890e055f079f53b07de3705838a7b4742ce56839f8Brian Duff assertEquals(list(Extensions.FIRST_VALUE, 25900e055f079f53b07de3705838a7b4742ce56839f8Brian Duff Extensions.SECOND_VALUE), deserialized.getExtension(Extensions.someRepeatedEnum)); 25910e055f079f53b07de3705838a7b4742ce56839f8Brian Duff assertEquals("Foo", deserialized.getExtension(Extensions.someRepeatedMessage).get(0).string); 25920e055f079f53b07de3705838a7b4742ce56839f8Brian Duff assertEquals(true, deserialized.getExtension(Extensions.someRepeatedMessage).get(0).value); 25930e055f079f53b07de3705838a7b4742ce56839f8Brian Duff assertEquals("Whee", deserialized.getExtension(Extensions.someRepeatedMessage).get(1).string); 25940e055f079f53b07de3705838a7b4742ce56839f8Brian Duff assertEquals(false, deserialized.getExtension(Extensions.someRepeatedMessage).get(1).value); 25950e055f079f53b07de3705838a7b4742ce56839f8Brian Duff } 25960e055f079f53b07de3705838a7b4742ce56839f8Brian Duff 25970e055f079f53b07de3705838a7b4742ce56839f8Brian Duff public void testUnknownFields() throws Exception { 25980e055f079f53b07de3705838a7b4742ce56839f8Brian Duff // Check that we roundtrip (serialize and deserialize) unrecognized fields. 25990e055f079f53b07de3705838a7b4742ce56839f8Brian Duff AnotherMessage message = new AnotherMessage(); 26000e055f079f53b07de3705838a7b4742ce56839f8Brian Duff message.string = "Hello World"; 26010e055f079f53b07de3705838a7b4742ce56839f8Brian Duff message.value = false; 26020e055f079f53b07de3705838a7b4742ce56839f8Brian Duff 26030e055f079f53b07de3705838a7b4742ce56839f8Brian Duff byte[] bytes = MessageNano.toByteArray(message); 26040e055f079f53b07de3705838a7b4742ce56839f8Brian Duff int extraFieldSize = CodedOutputStream.computeStringSize(1001, "This is an unknown field"); 26050e055f079f53b07de3705838a7b4742ce56839f8Brian Duff byte[] newBytes = new byte[bytes.length + extraFieldSize]; 26060e055f079f53b07de3705838a7b4742ce56839f8Brian Duff System.arraycopy(bytes, 0, newBytes, 0, bytes.length); 26070e055f079f53b07de3705838a7b4742ce56839f8Brian Duff CodedOutputStream.newInstance(newBytes, bytes.length, extraFieldSize).writeString(1001, 26080e055f079f53b07de3705838a7b4742ce56839f8Brian Duff "This is an unknown field"); 26090e055f079f53b07de3705838a7b4742ce56839f8Brian Duff 26100e055f079f53b07de3705838a7b4742ce56839f8Brian Duff // Deserialize with an unknown field. 26110e055f079f53b07de3705838a7b4742ce56839f8Brian Duff AnotherMessage deserialized = AnotherMessage.parseFrom(newBytes); 26120e055f079f53b07de3705838a7b4742ce56839f8Brian Duff byte[] serialized = MessageNano.toByteArray(deserialized); 26130e055f079f53b07de3705838a7b4742ce56839f8Brian Duff 26140e055f079f53b07de3705838a7b4742ce56839f8Brian Duff assertEquals(newBytes.length, serialized.length); 26150e055f079f53b07de3705838a7b4742ce56839f8Brian Duff 26160e055f079f53b07de3705838a7b4742ce56839f8Brian Duff // Clear, and make sure it clears everything. 26170e055f079f53b07de3705838a7b4742ce56839f8Brian Duff deserialized.clear(); 26180e055f079f53b07de3705838a7b4742ce56839f8Brian Duff assertEquals(0, MessageNano.toByteArray(deserialized).length); 26190e055f079f53b07de3705838a7b4742ce56839f8Brian Duff } 26200e055f079f53b07de3705838a7b4742ce56839f8Brian Duff 262119641419a381509bddfc2d0b5d60a411b67b105bBrian Duff public void testMergeFrom() throws Exception { 262219641419a381509bddfc2d0b5d60a411b67b105bBrian Duff SimpleMessageNano message = new SimpleMessageNano(); 262319641419a381509bddfc2d0b5d60a411b67b105bBrian Duff message.d = 123; 262419641419a381509bddfc2d0b5d60a411b67b105bBrian Duff byte[] bytes = MessageNano.toByteArray(message); 262519641419a381509bddfc2d0b5d60a411b67b105bBrian Duff 262619641419a381509bddfc2d0b5d60a411b67b105bBrian Duff SimpleMessageNano newMessage = MessageNano.mergeFrom(new SimpleMessageNano(), bytes); 262719641419a381509bddfc2d0b5d60a411b67b105bBrian Duff assertEquals(message.d, newMessage.d); 262819641419a381509bddfc2d0b5d60a411b67b105bBrian Duff } 262919641419a381509bddfc2d0b5d60a411b67b105bBrian Duff 2630f4e01452f159ae6b53f5edd25fa647ca2919ae10Tom Chao public void testJavaKeyword() throws Exception { 2631f4e01452f159ae6b53f5edd25fa647ca2919ae10Tom Chao TestAllTypesNano msg = new TestAllTypesNano(); 2632f4e01452f159ae6b53f5edd25fa647ca2919ae10Tom Chao msg.synchronized_ = 123; 2633f4e01452f159ae6b53f5edd25fa647ca2919ae10Tom Chao assertEquals(123, msg.synchronized_); 2634f4e01452f159ae6b53f5edd25fa647ca2919ae10Tom Chao } 2635f4e01452f159ae6b53f5edd25fa647ca2919ae10Tom Chao 26360b8579237336f221711a0aac42400eb31a58fed3Brian Duff public void testReferenceTypesForPrimitives() throws Exception { 26370b8579237336f221711a0aac42400eb31a58fed3Brian Duff NanoReferenceTypes.TestAllTypesNano message = new NanoReferenceTypes.TestAllTypesNano(); 26380b8579237336f221711a0aac42400eb31a58fed3Brian Duff 26390b8579237336f221711a0aac42400eb31a58fed3Brian Duff // Base check - when nothing is set, we serialize nothing. 26400b8579237336f221711a0aac42400eb31a58fed3Brian Duff assertHasWireData(message, false); 26410b8579237336f221711a0aac42400eb31a58fed3Brian Duff 26420b8579237336f221711a0aac42400eb31a58fed3Brian Duff message.defaultBool = true; 26430b8579237336f221711a0aac42400eb31a58fed3Brian Duff assertHasWireData(message, true); 26440b8579237336f221711a0aac42400eb31a58fed3Brian Duff 26450b8579237336f221711a0aac42400eb31a58fed3Brian Duff message.defaultBool = false; 26460b8579237336f221711a0aac42400eb31a58fed3Brian Duff assertHasWireData(message, true); 26470b8579237336f221711a0aac42400eb31a58fed3Brian Duff 26480b8579237336f221711a0aac42400eb31a58fed3Brian Duff message.defaultBool = null; 26490b8579237336f221711a0aac42400eb31a58fed3Brian Duff assertHasWireData(message, false); 26500b8579237336f221711a0aac42400eb31a58fed3Brian Duff 26510b8579237336f221711a0aac42400eb31a58fed3Brian Duff message.defaultInt32 = 5; 26520b8579237336f221711a0aac42400eb31a58fed3Brian Duff assertHasWireData(message, true); 26530b8579237336f221711a0aac42400eb31a58fed3Brian Duff 26540b8579237336f221711a0aac42400eb31a58fed3Brian Duff message.defaultInt32 = null; 26550b8579237336f221711a0aac42400eb31a58fed3Brian Duff assertHasWireData(message, false); 26560b8579237336f221711a0aac42400eb31a58fed3Brian Duff 26570b8579237336f221711a0aac42400eb31a58fed3Brian Duff message.defaultInt64 = 123456L; 26580b8579237336f221711a0aac42400eb31a58fed3Brian Duff assertHasWireData(message, true); 26590b8579237336f221711a0aac42400eb31a58fed3Brian Duff 26600b8579237336f221711a0aac42400eb31a58fed3Brian Duff message.defaultInt64 = null; 26610b8579237336f221711a0aac42400eb31a58fed3Brian Duff assertHasWireData(message, false); 26620b8579237336f221711a0aac42400eb31a58fed3Brian Duff 26630b8579237336f221711a0aac42400eb31a58fed3Brian Duff message.defaultFloat = 1f; 26640b8579237336f221711a0aac42400eb31a58fed3Brian Duff assertHasWireData(message, true); 26650b8579237336f221711a0aac42400eb31a58fed3Brian Duff 26660b8579237336f221711a0aac42400eb31a58fed3Brian Duff message.defaultFloat = null; 26670b8579237336f221711a0aac42400eb31a58fed3Brian Duff assertHasWireData(message, false); 26680b8579237336f221711a0aac42400eb31a58fed3Brian Duff 26690b8579237336f221711a0aac42400eb31a58fed3Brian Duff message.defaultDouble = 2.1; 26700b8579237336f221711a0aac42400eb31a58fed3Brian Duff assertHasWireData(message, true); 26710b8579237336f221711a0aac42400eb31a58fed3Brian Duff 26720b8579237336f221711a0aac42400eb31a58fed3Brian Duff message.defaultDouble = null; 26730b8579237336f221711a0aac42400eb31a58fed3Brian Duff assertHasWireData(message, false); 26740b8579237336f221711a0aac42400eb31a58fed3Brian Duff 26750b8579237336f221711a0aac42400eb31a58fed3Brian Duff message.defaultString = "hello"; 26760b8579237336f221711a0aac42400eb31a58fed3Brian Duff assertHasWireData(message, true); 26770b8579237336f221711a0aac42400eb31a58fed3Brian Duff 26780b8579237336f221711a0aac42400eb31a58fed3Brian Duff message.defaultString = null; 26790b8579237336f221711a0aac42400eb31a58fed3Brian Duff assertHasWireData(message, false); 26800b8579237336f221711a0aac42400eb31a58fed3Brian Duff 26810b8579237336f221711a0aac42400eb31a58fed3Brian Duff message.defaultBytes = new byte[] { 1, 2, 3 }; 26820b8579237336f221711a0aac42400eb31a58fed3Brian Duff assertHasWireData(message, true); 26830b8579237336f221711a0aac42400eb31a58fed3Brian Duff 26840b8579237336f221711a0aac42400eb31a58fed3Brian Duff message.defaultBytes = null; 26850b8579237336f221711a0aac42400eb31a58fed3Brian Duff assertHasWireData(message, false); 26860b8579237336f221711a0aac42400eb31a58fed3Brian Duff } 26870b8579237336f221711a0aac42400eb31a58fed3Brian Duff 2688ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff public void testHashCodeEquals() throws Exception { 2689ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff // Complete equality: 2690ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff TestAllTypesNano a = createMessageForHashCodeEqualsTest(); 2691ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff TestAllTypesNano aEquivalent = createMessageForHashCodeEqualsTest(); 2692ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff 2693ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff // Null and empty array for repeated fields equality: 2694ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff TestAllTypesNano b = createMessageForHashCodeEqualsTest(); 2695ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff b.repeatedBool = null; 2696ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff b.repeatedFloat = new float[0]; 2697ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff TestAllTypesNano bEquivalent = createMessageForHashCodeEqualsTest(); 2698ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff bEquivalent.repeatedBool = new boolean[0]; 2699ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff bEquivalent.repeatedFloat = null; 2700ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff 2701ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff // Ref-element-type repeated fields use non-null subsequence equality: 2702ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff TestAllTypesNano c = createMessageForHashCodeEqualsTest(); 2703ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff c.repeatedString = null; 2704ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff c.repeatedStringPiece = new String[] {null, "one", null, "two"}; 2705ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff c.repeatedBytes = new byte[][] {{3, 4}, null}; 2706ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff TestAllTypesNano cEquivalent = createMessageForHashCodeEqualsTest(); 2707ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff cEquivalent.repeatedString = new String[3]; 2708ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff cEquivalent.repeatedStringPiece = new String[] {"one", "two", null}; 2709ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff cEquivalent.repeatedBytes = new byte[][] {{3, 4}}; 2710ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff 2711ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff // Complete equality for messages with has fields: 2712ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff TestAllTypesNanoHas d = createMessageWithHasForHashCodeEqualsTest(); 2713ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff TestAllTypesNanoHas dEquivalent = createMessageWithHasForHashCodeEqualsTest(); 2714ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff 2715ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff // If has-fields exist, fields with the same default values but 2716ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff // different has-field values are different. 2717ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff TestAllTypesNanoHas e = createMessageWithHasForHashCodeEqualsTest(); 2718ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff e.optionalInt32++; // make different from d 2719ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff e.hasDefaultString = false; 2720ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff TestAllTypesNanoHas eDifferent = createMessageWithHasForHashCodeEqualsTest(); 2721ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff eDifferent.optionalInt32 = e.optionalInt32; 2722ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff eDifferent.hasDefaultString = true; 2723ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff 2724ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff // Complete equality for messages with accessors: 2725ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff TestNanoAccessors f = createMessageWithAccessorsForHashCodeEqualsTest(); 2726ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff TestNanoAccessors fEquivalent = createMessageWithAccessorsForHashCodeEqualsTest(); 2727ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff 2728ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff // If using accessors, explicitly setting a field to its default value 2729ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff // should make the message different. 2730ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff TestNanoAccessors g = createMessageWithAccessorsForHashCodeEqualsTest(); 2731ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff g.setOptionalInt32(g.getOptionalInt32() + 1); // make different from f 2732ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff g.clearDefaultString(); 2733ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff TestNanoAccessors gDifferent = createMessageWithAccessorsForHashCodeEqualsTest(); 2734ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff gDifferent.setOptionalInt32(g.getOptionalInt32()); 2735ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff gDifferent.setDefaultString(g.getDefaultString()); 2736ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff 2737ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff // Complete equality for reference typed messages: 2738ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff NanoReferenceTypes.TestAllTypesNano h = createRefTypedMessageForHashCodeEqualsTest(); 2739ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff NanoReferenceTypes.TestAllTypesNano hEquivalent = createRefTypedMessageForHashCodeEqualsTest(); 2740ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff 2741ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff // Inequality of null and default value for reference typed messages: 2742ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff NanoReferenceTypes.TestAllTypesNano i = createRefTypedMessageForHashCodeEqualsTest(); 2743ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff i.optionalInt32 = 1; // make different from h 2744ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff i.optionalFloat = null; 2745ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff NanoReferenceTypes.TestAllTypesNano iDifferent = createRefTypedMessageForHashCodeEqualsTest(); 2746ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff iDifferent.optionalInt32 = i.optionalInt32; 2747ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff iDifferent.optionalFloat = 0.0f; 2748ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff 2749ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff HashMap<MessageNano, String> hashMap = new HashMap<MessageNano, String>(); 2750ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff hashMap.put(a, "a"); 2751ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff hashMap.put(b, "b"); 2752ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff hashMap.put(c, "c"); 2753ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff hashMap.put(d, "d"); 2754ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff hashMap.put(e, "e"); 2755ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff hashMap.put(f, "f"); 2756ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff hashMap.put(g, "g"); 2757ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff hashMap.put(h, "h"); 2758ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff hashMap.put(i, "i"); 2759ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff 2760ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff assertEquals(9, hashMap.size()); // a-i should be different from each other. 2761ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff 2762ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff assertEquals("a", hashMap.get(a)); 2763ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff assertEquals("a", hashMap.get(aEquivalent)); 2764ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff 2765ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff assertEquals("b", hashMap.get(b)); 2766ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff assertEquals("b", hashMap.get(bEquivalent)); 2767ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff 2768ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff assertEquals("c", hashMap.get(c)); 2769ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff assertEquals("c", hashMap.get(cEquivalent)); 2770ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff 2771ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff assertEquals("d", hashMap.get(d)); 2772ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff assertEquals("d", hashMap.get(dEquivalent)); 2773ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff 2774ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff assertEquals("e", hashMap.get(e)); 2775ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff assertNull(hashMap.get(eDifferent)); 2776ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff 2777ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff assertEquals("f", hashMap.get(f)); 2778ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff assertEquals("f", hashMap.get(fEquivalent)); 2779ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff 2780ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff assertEquals("g", hashMap.get(g)); 2781ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff assertNull(hashMap.get(gDifferent)); 2782ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff 2783ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff assertEquals("h", hashMap.get(h)); 2784ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff assertEquals("h", hashMap.get(hEquivalent)); 2785ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff 2786ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff assertEquals("i", hashMap.get(i)); 2787ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff assertNull(hashMap.get(iDifferent)); 2788ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff } 2789ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff 2790ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff private TestAllTypesNano createMessageForHashCodeEqualsTest() { 2791ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff TestAllTypesNano message = new TestAllTypesNano(); 2792ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalInt32 = 5; 2793ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalInt64 = 777; 2794ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalFloat = 1.0f; 2795ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalDouble = 2.0; 2796ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalBool = true; 2797ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalString = "Hello"; 2798ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalBytes = new byte[] { 1, 2, 3 }; 2799ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalNestedMessage = new TestAllTypesNano.NestedMessage(); 2800ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalNestedMessage.bb = 27; 2801ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalNestedEnum = TestAllTypesNano.BAR; 2802ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedInt32 = new int[] { 5, 6, 7, 8 }; 2803ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedInt64 = new long[] { 27L, 28L, 29L }; 2804ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedFloat = new float[] { 5.0f, 6.0f }; 2805ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedDouble = new double[] { 99.1, 22.5 }; 2806ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedBool = new boolean[] { true, false, true }; 2807ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedString = new String[] { "One", "Two" }; 2808ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedBytes = new byte[][] { { 2, 7 }, { 2, 7 } }; 2809ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedNestedMessage = new TestAllTypesNano.NestedMessage[] { 2810ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalNestedMessage, 2811ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalNestedMessage 2812ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff }; 2813ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedNestedEnum = new int[] { 2814ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff TestAllTypesNano.BAR, 2815ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff TestAllTypesNano.BAZ 2816ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff }; 2817ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff // We set the _nan fields to something other than nan, because equality 2818ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff // is defined for nan such that Float.NaN != Float.NaN, which makes any 2819ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff // instance of TestAllTypesNano unequal to any other instance unless 2820ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff // these fields are set. This is also the behavior of the regular java 2821ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff // generator when the value of a field is NaN. 2822ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.defaultFloatNan = 1.0f; 2823ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.defaultDoubleNan = 1.0; 2824ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff return message; 2825ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff } 2826ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff 2827ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff private TestAllTypesNanoHas createMessageWithHasForHashCodeEqualsTest() { 2828ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff TestAllTypesNanoHas message = new TestAllTypesNanoHas(); 2829ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalInt32 = 5; 2830ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalString = "Hello"; 2831ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalBytes = new byte[] { 1, 2, 3 }; 2832ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalNestedMessage = new TestAllTypesNanoHas.NestedMessage(); 2833ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalNestedMessage.bb = 27; 2834ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalNestedEnum = TestAllTypesNano.BAR; 2835ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedInt32 = new int[] { 5, 6, 7, 8 }; 2836ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedString = new String[] { "One", "Two" }; 2837ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedBytes = new byte[][] { { 2, 7 }, { 2, 7 } }; 2838ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedNestedMessage = new TestAllTypesNanoHas.NestedMessage[] { 2839ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalNestedMessage, 2840ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalNestedMessage 2841ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff }; 2842ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedNestedEnum = new int[] { 2843ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff TestAllTypesNano.BAR, 2844ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff TestAllTypesNano.BAZ 2845ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff }; 2846ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.defaultFloatNan = 1.0f; 2847ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff return message; 2848ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff } 2849ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff 2850ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff private TestNanoAccessors createMessageWithAccessorsForHashCodeEqualsTest() { 2851ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff TestNanoAccessors message = new TestNanoAccessors() 2852ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff .setOptionalInt32(5) 2853ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff .setOptionalString("Hello") 2854ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff .setOptionalBytes(new byte[] {1, 2, 3}) 2855ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff .setOptionalNestedMessage(new TestNanoAccessors.NestedMessage().setBb(27)) 2856ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff .setOptionalNestedEnum(TestNanoAccessors.BAR) 2857ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff .setDefaultFloatNan(1.0f); 2858ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedInt32 = new int[] { 5, 6, 7, 8 }; 2859ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedString = new String[] { "One", "Two" }; 2860ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedBytes = new byte[][] { { 2, 7 }, { 2, 7 } }; 2861ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedNestedMessage = new TestNanoAccessors.NestedMessage[] { 2862ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.getOptionalNestedMessage(), 2863ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.getOptionalNestedMessage() 2864ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff }; 2865ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedNestedEnum = new int[] { 2866ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff TestAllTypesNano.BAR, 2867ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff TestAllTypesNano.BAZ 2868ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff }; 2869ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff return message; 2870ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff } 2871ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff 2872ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff private NanoReferenceTypes.TestAllTypesNano createRefTypedMessageForHashCodeEqualsTest() { 2873ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff NanoReferenceTypes.TestAllTypesNano message = new NanoReferenceTypes.TestAllTypesNano(); 2874ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalInt32 = 5; 2875ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalInt64 = 777L; 2876ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalFloat = 1.0f; 2877ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalDouble = 2.0; 2878ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalBool = true; 2879ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalString = "Hello"; 2880ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalBytes = new byte[] { 1, 2, 3 }; 2881ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalNestedMessage = 2882ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff new NanoReferenceTypes.TestAllTypesNano.NestedMessage(); 2883ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalNestedMessage.foo = 27; 2884ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalNestedEnum = NanoReferenceTypes.TestAllTypesNano.BAR; 2885ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedInt32 = new int[] { 5, 6, 7, 8 }; 2886ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedInt64 = new long[] { 27L, 28L, 29L }; 2887ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedFloat = new float[] { 5.0f, 6.0f }; 2888ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedDouble = new double[] { 99.1, 22.5 }; 2889ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedBool = new boolean[] { true, false, true }; 2890ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedString = new String[] { "One", "Two" }; 2891ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedBytes = new byte[][] { { 2, 7 }, { 2, 7 } }; 2892ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedNestedMessage = 2893ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff new NanoReferenceTypes.TestAllTypesNano.NestedMessage[] { 2894ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalNestedMessage, 2895ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.optionalNestedMessage 2896ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff }; 2897ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff message.repeatedNestedEnum = new int[] { 2898ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff NanoReferenceTypes.TestAllTypesNano.BAR, 2899ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff NanoReferenceTypes.TestAllTypesNano.BAZ 2900ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff }; 2901ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff return message; 2902ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff } 2903ccc48faf20dbf3b3cddcffe78d198876d543529bBrian Duff 2904e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff public void testNullRepeatedFields() throws Exception { 2905e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff // Check that serialization after explicitly setting a repeated field 2906e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff // to null doesn't NPE. 2907e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff TestAllTypesNano message = new TestAllTypesNano(); 2908e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff message.repeatedInt32 = null; 2909e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff MessageNano.toByteArray(message); // should not NPE 2910e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff message.toString(); // should not NPE 2911e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff 2912e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff message.repeatedNestedEnum = null; 2913e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff MessageNano.toByteArray(message); // should not NPE 2914e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff message.toString(); // should not NPE 2915e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff 2916e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff message.repeatedBytes = null; 2917e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff MessageNano.toByteArray(message); // should not NPE 2918e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff message.toString(); // should not NPE 2919e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff 2920e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff message.repeatedNestedMessage = null; 2921e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff MessageNano.toByteArray(message); // should not NPE 2922e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff message.toString(); // should not NPE 2923e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff 2924334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai message.repeatedPackedInt32 = null; 2925334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai MessageNano.toByteArray(message); // should not NPE 2926334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai message.toString(); // should not NPE 2927334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai 2928334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai message.repeatedPackedNestedEnum = null; 2929334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai MessageNano.toByteArray(message); // should not NPE 2930334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai message.toString(); // should not NPE 2931334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai 2932e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff // Create a second message to merge into message. 2933e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff TestAllTypesNano secondMessage = new TestAllTypesNano(); 2934334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai secondMessage.repeatedInt32 = new int[] {1, 2, 3}; 2935334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai secondMessage.repeatedNestedEnum = new int[] { 2936334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai TestAllTypesNano.FOO, TestAllTypesNano.BAR 2937334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai }; 2938334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai secondMessage.repeatedBytes = new byte[][] {{1, 2}, {3, 4}}; 2939e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff TestAllTypesNano.NestedMessage nested = 2940e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff new TestAllTypesNano.NestedMessage(); 2941e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff nested.bb = 55; 2942e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff secondMessage.repeatedNestedMessage = 2943334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai new TestAllTypesNano.NestedMessage[] {nested}; 2944334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai secondMessage.repeatedPackedInt32 = new int[] {1, 2, 3}; 2945334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai secondMessage.repeatedPackedNestedEnum = new int[] { 2946334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai TestAllTypesNano.FOO, TestAllTypesNano.BAR 2947334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai }; 2948e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff 2949e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff // Should not NPE 2950e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff message.mergeFrom(CodedInputByteBufferNano.newInstance( 2951e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff MessageNano.toByteArray(secondMessage))); 2952334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(3, message.repeatedInt32.length); 2953334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(3, message.repeatedInt32[2]); 2954334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(2, message.repeatedNestedEnum.length); 2955334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(TestAllTypesNano.FOO, message.repeatedNestedEnum[0]); 2956334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(2, message.repeatedBytes.length); 2957334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(4, message.repeatedBytes[1][1]); 2958334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(1, message.repeatedNestedMessage.length); 2959e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff assertEquals(55, message.repeatedNestedMessage[0].bb); 2960334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(3, message.repeatedPackedInt32.length); 2961334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(2, message.repeatedPackedInt32[1]); 2962334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(2, message.repeatedPackedNestedEnum.length); 2963334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(TestAllTypesNano.BAR, message.repeatedPackedNestedEnum[1]); 2964334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai } 2965334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai 2966beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod public void testNullRepeatedFieldElements() throws Exception { 2967beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod // Check that serialization with null array elements doesn't NPE. 2968beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod String string1 = "1"; 2969beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod String string2 = "2"; 2970beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod byte[] bytes1 = {3, 4}; 2971beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod byte[] bytes2 = {5, 6}; 2972beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod TestAllTypesNano.NestedMessage msg1 = new TestAllTypesNano.NestedMessage(); 2973beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod msg1.bb = 7; 2974beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod TestAllTypesNano.NestedMessage msg2 = new TestAllTypesNano.NestedMessage(); 2975beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod msg2.bb = 8; 2976beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod 2977beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod TestAllTypesNano message = new TestAllTypesNano(); 2978beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod message.repeatedString = new String[] {null, string1, string2}; 2979beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod message.repeatedBytes = new byte[][] {bytes1, null, bytes2}; 2980beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod message.repeatedNestedMessage = new TestAllTypesNano.NestedMessage[] {msg1, msg2, null}; 2981beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod message.repeatedGroup = new TestAllTypesNano.RepeatedGroup[] {null, null, null}; 2982beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod 2983beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod byte[] serialized = MessageNano.toByteArray(message); // should not NPE 2984beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod TestAllTypesNano deserialized = MessageNano.mergeFrom(new TestAllTypesNano(), serialized); 2985beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod assertEquals(2, deserialized.repeatedString.length); 2986beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod assertEquals(string1, deserialized.repeatedString[0]); 2987beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod assertEquals(string2, deserialized.repeatedString[1]); 2988beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod assertEquals(2, deserialized.repeatedBytes.length); 2989beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod assertTrue(Arrays.equals(bytes1, deserialized.repeatedBytes[0])); 2990beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod assertTrue(Arrays.equals(bytes2, deserialized.repeatedBytes[1])); 2991beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod assertEquals(2, deserialized.repeatedNestedMessage.length); 2992beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod assertEquals(msg1.bb, deserialized.repeatedNestedMessage[0].bb); 2993beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod assertEquals(msg2.bb, deserialized.repeatedNestedMessage[1].bb); 2994beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod assertEquals(0, deserialized.repeatedGroup.length); 2995beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod } 2996beb57e08a44a140bf52235717f1f907ca857f360Aurash Mahbod 2997334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai public void testRepeatedMerge() throws Exception { 2998334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai // Check that merging repeated fields cause the arrays to expand with 2999334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai // new data. 3000334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai TestAllTypesNano first = new TestAllTypesNano(); 3001334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai first.repeatedInt32 = new int[] {1, 2, 3}; 3002334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai TestAllTypesNano second = new TestAllTypesNano(); 3003334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai second.repeatedInt32 = new int[] {4, 5}; 3004334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai MessageNano.mergeFrom(first, MessageNano.toByteArray(second)); 3005334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(5, first.repeatedInt32.length); 3006334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(1, first.repeatedInt32[0]); 3007334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(4, first.repeatedInt32[3]); 3008334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai 3009334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai first = new TestAllTypesNano(); 3010334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai first.repeatedNestedEnum = new int[] {TestAllTypesNano.BAR}; 3011334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai second = new TestAllTypesNano(); 3012334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai second.repeatedNestedEnum = new int[] {TestAllTypesNano.FOO}; 3013334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai MessageNano.mergeFrom(first, MessageNano.toByteArray(second)); 3014334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(2, first.repeatedNestedEnum.length); 3015334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(TestAllTypesNano.BAR, first.repeatedNestedEnum[0]); 3016334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(TestAllTypesNano.FOO, first.repeatedNestedEnum[1]); 3017334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai 3018334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai first = new TestAllTypesNano(); 3019334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai first.repeatedNestedMessage = new TestAllTypesNano.NestedMessage[] { 3020334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai new TestAllTypesNano.NestedMessage() 3021334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai }; 3022334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai first.repeatedNestedMessage[0].bb = 3; 3023334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai second = new TestAllTypesNano(); 3024334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai second.repeatedNestedMessage = new TestAllTypesNano.NestedMessage[] { 3025334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai new TestAllTypesNano.NestedMessage() 3026334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai }; 3027334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai second.repeatedNestedMessage[0].bb = 5; 3028334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai MessageNano.mergeFrom(first, MessageNano.toByteArray(second)); 3029334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(2, first.repeatedNestedMessage.length); 3030334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(3, first.repeatedNestedMessage[0].bb); 3031334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(5, first.repeatedNestedMessage[1].bb); 3032334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai 3033334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai first = new TestAllTypesNano(); 3034334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai first.repeatedPackedSfixed64 = new long[] {-1, -2, -3}; 3035334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai second = new TestAllTypesNano(); 3036334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai second.repeatedPackedSfixed64 = new long[] {-4, -5}; 3037334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai MessageNano.mergeFrom(first, MessageNano.toByteArray(second)); 3038334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(5, first.repeatedPackedSfixed64.length); 3039334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(-1, first.repeatedPackedSfixed64[0]); 3040334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(-4, first.repeatedPackedSfixed64[3]); 3041334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai 3042334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai first = new TestAllTypesNano(); 3043334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai first.repeatedPackedNestedEnum = new int[] {TestAllTypesNano.BAR}; 3044334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai second = new TestAllTypesNano(); 3045334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai second.repeatedPackedNestedEnum = new int[] {TestAllTypesNano.FOO}; 3046334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai MessageNano.mergeFrom(first, MessageNano.toByteArray(second)); 3047334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(2, first.repeatedPackedNestedEnum.length); 3048334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(TestAllTypesNano.BAR, first.repeatedPackedNestedEnum[0]); 3049334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(TestAllTypesNano.FOO, first.repeatedPackedNestedEnum[1]); 3050334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai 3051334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai // Now test repeated merging in a nested scope 3052334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai TestRepeatedMergeNano firstContainer = new TestRepeatedMergeNano(); 3053334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai firstContainer.contained = new TestAllTypesNano(); 3054334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai firstContainer.contained.repeatedInt32 = new int[] {10, 20}; 3055334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai TestRepeatedMergeNano secondContainer = new TestRepeatedMergeNano(); 3056334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai secondContainer.contained = new TestAllTypesNano(); 3057334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai secondContainer.contained.repeatedInt32 = new int[] {30}; 3058334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai MessageNano.mergeFrom(firstContainer, MessageNano.toByteArray(secondContainer)); 3059334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(3, firstContainer.contained.repeatedInt32.length); 3060334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(20, firstContainer.contained.repeatedInt32[1]); 3061334a7d1117a576bc6010c14677fb6444639c1ddaMax Cai assertEquals(30, firstContainer.contained.repeatedInt32[2]); 3062e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff } 3063e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff 30640b8579237336f221711a0aac42400eb31a58fed3Brian Duff private void assertHasWireData(MessageNano message, boolean expected) { 3065e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff byte[] bytes = MessageNano.toByteArray(message); 3066e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff int wireLength = bytes.length; 30670b8579237336f221711a0aac42400eb31a58fed3Brian Duff if (expected) { 30680b8579237336f221711a0aac42400eb31a58fed3Brian Duff assertFalse(wireLength == 0); 30690b8579237336f221711a0aac42400eb31a58fed3Brian Duff } else { 3070e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff if (wireLength != 0) { 3071e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff fail("Expected no wire data for message \n" + message 3072e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff + "\nBut got:\n" 3073e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff + hexDump(bytes)); 3074e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff } 3075e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff } 3076e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff } 3077e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff 3078e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff private static String hexDump(byte[] bytes) { 3079e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff StringBuilder sb = new StringBuilder(); 3080e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff for (byte b : bytes) { 3081e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff sb.append(String.format("%02x ", b)); 30820b8579237336f221711a0aac42400eb31a58fed3Brian Duff } 3083e03e9f4b5774c0ffe04140d83bbdb532863b1720Brian Duff return sb.toString(); 30840b8579237336f221711a0aac42400eb31a58fed3Brian Duff } 30850b8579237336f221711a0aac42400eb31a58fed3Brian Duff 30860e055f079f53b07de3705838a7b4742ce56839f8Brian Duff private <T> List<T> list(T first, T... remaining) { 30870e055f079f53b07de3705838a7b4742ce56839f8Brian Duff List<T> list = new ArrayList<T>(); 30880e055f079f53b07de3705838a7b4742ce56839f8Brian Duff list.add(first); 30890e055f079f53b07de3705838a7b4742ce56839f8Brian Duff for (T item : remaining) { 30900e055f079f53b07de3705838a7b4742ce56839f8Brian Duff list.add(item); 30910e055f079f53b07de3705838a7b4742ce56839f8Brian Duff } 30920e055f079f53b07de3705838a7b4742ce56839f8Brian Duff return list; 30930e055f079f53b07de3705838a7b4742ce56839f8Brian Duff } 309464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci} 3095