|
@@ -0,0 +1,2104 @@
|
|
|
|
|
+// Protocol Buffers - Google's data interchange format
|
|
|
|
|
+// Copyright 2013 Google Inc. All rights reserved.
|
|
|
|
|
+// http://code.google.com/p/protobuf/
|
|
|
|
|
+//
|
|
|
|
|
+// Redistribution and use in source and binary forms, with or without
|
|
|
|
|
+// modification, are permitted provided that the following conditions are
|
|
|
|
|
+// met:
|
|
|
|
|
+//
|
|
|
|
|
+// * Redistributions of source code must retain the above copyright
|
|
|
|
|
+// notice, this list of conditions and the following disclaimer.
|
|
|
|
|
+// * Redistributions in binary form must reproduce the above
|
|
|
|
|
+// copyright notice, this list of conditions and the following disclaimer
|
|
|
|
|
+// in the documentation and/or other materials provided with the
|
|
|
|
|
+// distribution.
|
|
|
|
|
+// * Neither the name of Google Inc. nor the names of its
|
|
|
|
|
+// contributors may be used to endorse or promote products derived from
|
|
|
|
|
+// this software without specific prior written permission.
|
|
|
|
|
+//
|
|
|
|
|
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
|
|
|
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
|
|
|
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
|
|
|
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
|
|
|
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
|
|
|
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
|
|
|
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
|
|
|
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
|
|
|
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
|
|
|
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
|
|
|
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
|
+
|
|
|
|
|
+package com.google.protobuf;
|
|
|
|
|
+
|
|
|
|
|
+import com.google.protobuf.nano.InternalNano;
|
|
|
|
|
+import com.google.protobuf.nano.MessageNano;
|
|
|
|
|
+import com.google.protobuf.nano.NanoOuterClass;
|
|
|
|
|
+import com.google.protobuf.nano.NanoOuterClass.TestAllTypesNano;
|
|
|
|
|
+import com.google.protobuf.nano.RecursiveMessageNano;
|
|
|
|
|
+import com.google.protobuf.nano.SimpleMessageNano;
|
|
|
|
|
+import com.google.protobuf.nano.UnittestImportNano;
|
|
|
|
|
+import com.google.protobuf.nano.CodedInputByteBufferNano;
|
|
|
|
|
+
|
|
|
|
|
+import junit.framework.TestCase;
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * Test nano runtime.
|
|
|
|
|
+ *
|
|
|
|
|
+ * @author ulas@google.com Ulas Kirazci
|
|
|
|
|
+ */
|
|
|
|
|
+public class NanoTest extends TestCase {
|
|
|
|
|
+ public void setUp() throws Exception {
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testSimpleMessageNano() throws Exception {
|
|
|
|
|
+ SimpleMessageNano msg = new SimpleMessageNano();
|
|
|
|
|
+ assertEquals(123, msg.d);
|
|
|
|
|
+ assertEquals(null, msg.nestedMsg);
|
|
|
|
|
+ assertEquals(SimpleMessageNano.BAZ, msg.defaultNestedEnum);
|
|
|
|
|
+
|
|
|
|
|
+ msg.d = 456;
|
|
|
|
|
+ assertEquals(456, msg.d);
|
|
|
|
|
+
|
|
|
|
|
+ SimpleMessageNano.NestedMessage nestedMsg = new SimpleMessageNano.NestedMessage();
|
|
|
|
|
+ nestedMsg.bb = 2;
|
|
|
|
|
+ assertEquals(2, nestedMsg.bb);
|
|
|
|
|
+ msg.nestedMsg = nestedMsg;
|
|
|
|
|
+ assertEquals(2, msg.nestedMsg.bb);
|
|
|
|
|
+
|
|
|
|
|
+ msg.defaultNestedEnum = SimpleMessageNano.BAR;
|
|
|
|
|
+ assertEquals(SimpleMessageNano.BAR, msg.defaultNestedEnum);
|
|
|
|
|
+
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 9);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ SimpleMessageNano newMsg = SimpleMessageNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(456, newMsg.d);
|
|
|
|
|
+ assertEquals(2, msg.nestedMsg.bb);
|
|
|
|
|
+ assertEquals(SimpleMessageNano.BAR, msg.defaultNestedEnum);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testRecursiveMessageNano() throws Exception {
|
|
|
|
|
+ RecursiveMessageNano msg = new RecursiveMessageNano();
|
|
|
|
|
+ assertTrue(msg.repeatedRecursiveMessageNano.length == 0);
|
|
|
|
|
+
|
|
|
|
|
+ RecursiveMessageNano msg1 = new RecursiveMessageNano();
|
|
|
|
|
+ msg1.id = 1;
|
|
|
|
|
+ assertEquals(1, msg1.id);
|
|
|
|
|
+ RecursiveMessageNano msg2 = new RecursiveMessageNano();
|
|
|
|
|
+ msg2.id = 2;
|
|
|
|
|
+ RecursiveMessageNano msg3 = new RecursiveMessageNano();
|
|
|
|
|
+ msg3.id = 3;
|
|
|
|
|
+
|
|
|
|
|
+ RecursiveMessageNano.NestedMessage nestedMsg = new RecursiveMessageNano.NestedMessage();
|
|
|
|
|
+ nestedMsg.a = msg1;
|
|
|
|
|
+ assertEquals(1, nestedMsg.a.id);
|
|
|
|
|
+
|
|
|
|
|
+ msg.id = 0;
|
|
|
|
|
+ msg.nestedMessage = nestedMsg;
|
|
|
|
|
+ msg.optionalRecursiveMessageNano = msg2;
|
|
|
|
|
+ msg.repeatedRecursiveMessageNano = new RecursiveMessageNano[] { msg3 };
|
|
|
|
|
+
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 16);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ RecursiveMessageNano newMsg = RecursiveMessageNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedRecursiveMessageNano.length);
|
|
|
|
|
+
|
|
|
|
|
+ assertEquals(0, newMsg.id);
|
|
|
|
|
+ assertEquals(1, newMsg.nestedMessage.a.id);
|
|
|
|
|
+ assertEquals(2, newMsg.optionalRecursiveMessageNano.id);
|
|
|
|
|
+ assertEquals(3, newMsg.repeatedRecursiveMessageNano[0].id);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRequiredInt32() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ msg.id = 123;
|
|
|
|
|
+ assertEquals(123, msg.id);
|
|
|
|
|
+ msg.clear().id = 456;
|
|
|
|
|
+ assertEquals(456, msg.id);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+
|
|
|
|
|
+ msg.id = 123;
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 3);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(123, newMsg.id);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoOptionalInt32() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ msg.optionalInt32 = 123;
|
|
|
|
|
+ assertEquals(123, msg.optionalInt32);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .optionalInt32 = 456;
|
|
|
|
|
+ assertEquals(456, msg.optionalInt32);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+
|
|
|
|
|
+ msg.optionalInt32 = 123;
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 5);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(123, newMsg.optionalInt32);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoOptionalInt64() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ msg.optionalInt64 = 123;
|
|
|
|
|
+ assertEquals(123, msg.optionalInt64);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .optionalInt64 = 456;
|
|
|
|
|
+ assertEquals(456, msg.optionalInt64);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.optionalInt64);
|
|
|
|
|
+
|
|
|
|
|
+ msg.optionalInt64 = 123;
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 5);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(123, newMsg.optionalInt64);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoOptionalUint32() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ msg.optionalUint32 = 123;
|
|
|
|
|
+ assertEquals(123, msg.optionalUint32);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .optionalUint32 = 456;
|
|
|
|
|
+ assertEquals(456, msg.optionalUint32);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.optionalUint32);
|
|
|
|
|
+
|
|
|
|
|
+ msg.optionalUint32 = 123;
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 5);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(123, newMsg.optionalUint32);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoOptionalUint64() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ msg.optionalUint64 = 123;
|
|
|
|
|
+ assertEquals(123, msg.optionalUint64);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .optionalUint64 = 456;
|
|
|
|
|
+ assertEquals(456, msg.optionalUint64);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.optionalUint64);
|
|
|
|
|
+
|
|
|
|
|
+ msg.optionalUint64 = 123;
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 5);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(123, newMsg.optionalUint64);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoOptionalSint32() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ msg.optionalSint32 = 123;
|
|
|
|
|
+ assertEquals(123, msg.optionalSint32);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .optionalSint32 = 456;
|
|
|
|
|
+ assertEquals(456, msg.optionalSint32);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.optionalSint32);
|
|
|
|
|
+
|
|
|
|
|
+ msg.optionalSint32 = -123;
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 6);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(-123, newMsg.optionalSint32);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoOptionalSint64() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ msg.optionalSint64 = 123;
|
|
|
|
|
+ assertEquals(123, msg.optionalSint64);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .optionalSint64 = 456;
|
|
|
|
|
+ assertEquals(456, msg.optionalSint64);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.optionalSint64);
|
|
|
|
|
+
|
|
|
|
|
+ msg.optionalSint64 = -123;
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 6);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(-123, newMsg.optionalSint64);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoOptionalFixed32() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ msg.optionalFixed32 = 123;
|
|
|
|
|
+ assertEquals(123, msg.optionalFixed32);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .optionalFixed32 = 456;
|
|
|
|
|
+ assertEquals(456, msg.optionalFixed32);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.optionalFixed32);
|
|
|
|
|
+
|
|
|
|
|
+ msg.optionalFixed32 = 123;
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 8);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(123, newMsg.optionalFixed32);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoOptionalFixed64() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ msg.optionalFixed64 = 123;
|
|
|
|
|
+ assertEquals(123, msg.optionalFixed64);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .optionalFixed64 = 456;
|
|
|
|
|
+ assertEquals(456, msg.optionalFixed64);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.optionalFixed64);
|
|
|
|
|
+
|
|
|
|
|
+ msg.optionalFixed64 = 123;
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 12);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(123, newMsg.optionalFixed64);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoOptionalSfixed32() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ msg.optionalSfixed32 = 123;
|
|
|
|
|
+ assertEquals(123, msg.optionalSfixed32);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .optionalSfixed32 = 456;
|
|
|
|
|
+ assertEquals(456, msg.optionalSfixed32);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.optionalSfixed32);
|
|
|
|
|
+
|
|
|
|
|
+ msg.optionalSfixed32 = 123;
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 8);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(123, newMsg.optionalSfixed32);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoOptionalSfixed64() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ msg.optionalSfixed64 = 123;
|
|
|
|
|
+ assertEquals(123, msg.optionalSfixed64);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .optionalSfixed64 = 456;
|
|
|
|
|
+ assertEquals(456, msg.optionalSfixed64);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.optionalSfixed64);
|
|
|
|
|
+
|
|
|
|
|
+ msg.optionalSfixed64 = -123;
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 12);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(-123, newMsg.optionalSfixed64);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoOptionalFloat() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ msg.optionalFloat = 123f;
|
|
|
|
|
+ assertTrue(123.0f == msg.optionalFloat);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .optionalFloat = 456.0f;
|
|
|
|
|
+ assertTrue(456.0f == msg.optionalFloat);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertTrue(0.0f == msg.optionalFloat);
|
|
|
|
|
+
|
|
|
|
|
+ msg.optionalFloat = -123.456f;
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 8);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertTrue(-123.456f == newMsg.optionalFloat);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoOptionalDouble() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ msg.optionalDouble = 123;
|
|
|
|
|
+ assertTrue(123.0 == msg.optionalDouble);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .optionalDouble = 456.0;
|
|
|
|
|
+ assertTrue(456.0 == msg.optionalDouble);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertTrue(0.0 == msg.optionalDouble);
|
|
|
|
|
+
|
|
|
|
|
+ msg.optionalDouble = -123.456;
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 12);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertTrue(-123.456 == newMsg.optionalDouble);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoOptionalBool() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ msg.optionalBool = true;
|
|
|
|
|
+ assertTrue(msg.optionalBool);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .optionalBool = true;
|
|
|
|
|
+ assertTrue(msg.optionalBool);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertFalse(msg.optionalBool);
|
|
|
|
|
+
|
|
|
|
|
+ msg.optionalBool = true;
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 5);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertTrue(newMsg.optionalBool);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoOptionalString() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ msg.optionalString = "hello";
|
|
|
|
|
+ assertEquals("hello", msg.optionalString);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertTrue(msg.optionalString.isEmpty());
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .optionalString = "hello2";
|
|
|
|
|
+ assertEquals("hello2", msg.optionalString);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertTrue(msg.optionalString.isEmpty());
|
|
|
|
|
+
|
|
|
|
|
+ msg.optionalString = "bye";
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 8);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertTrue(newMsg.optionalString != null);
|
|
|
|
|
+ assertEquals("bye", newMsg.optionalString);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoOptionalBytes() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ assertFalse(msg.optionalBytes.length > 0);
|
|
|
|
|
+ msg.optionalBytes = InternalNano.copyFromUtf8("hello");
|
|
|
|
|
+ assertTrue(msg.optionalBytes.length > 0);
|
|
|
|
|
+ assertEquals("hello", new String(msg.optionalBytes, "UTF-8"));
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertFalse(msg.optionalBytes.length > 0);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .optionalBytes = InternalNano.copyFromUtf8("hello");
|
|
|
|
|
+ assertTrue(msg.optionalBytes.length > 0);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertFalse(msg.optionalBytes.length > 0);
|
|
|
|
|
+
|
|
|
|
|
+ msg.optionalBytes = InternalNano.copyFromUtf8("bye");
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 8);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertTrue(newMsg.optionalBytes.length > 0);
|
|
|
|
|
+ assertEquals("bye", new String(newMsg.optionalBytes, "UTF-8"));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoOptionalGroup() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ TestAllTypesNano.OptionalGroup grp = new TestAllTypesNano.OptionalGroup();
|
|
|
|
|
+ grp.a = 1;
|
|
|
|
|
+ assertFalse(msg.optionalGroup != null);
|
|
|
|
|
+ msg.optionalGroup = grp;
|
|
|
|
|
+ assertTrue(msg.optionalGroup != null);
|
|
|
|
|
+ assertEquals(1, msg.optionalGroup.a);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertFalse(msg.optionalGroup != null);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .optionalGroup = new TestAllTypesNano.OptionalGroup();
|
|
|
|
|
+ msg.optionalGroup.a = 2;
|
|
|
|
|
+ assertTrue(msg.optionalGroup != null);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertFalse(msg.optionalGroup != null);
|
|
|
|
|
+
|
|
|
|
|
+ msg.optionalGroup = grp;
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 10);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertTrue(newMsg.optionalGroup != null);
|
|
|
|
|
+ assertEquals(1, newMsg.optionalGroup.a);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoOptionalNestedMessage() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ TestAllTypesNano.NestedMessage nestedMsg = new TestAllTypesNano.NestedMessage();
|
|
|
|
|
+ nestedMsg.bb = 1;
|
|
|
|
|
+ assertFalse(msg.optionalNestedMessage != null);
|
|
|
|
|
+ msg.optionalNestedMessage = nestedMsg;
|
|
|
|
|
+ assertTrue(msg.optionalNestedMessage != null);
|
|
|
|
|
+ assertEquals(1, msg.optionalNestedMessage.bb);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertFalse(msg.optionalNestedMessage != null);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .optionalNestedMessage = new TestAllTypesNano.NestedMessage();
|
|
|
|
|
+ msg.optionalNestedMessage.bb = 2;
|
|
|
|
|
+ assertTrue(msg.optionalNestedMessage != null);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertFalse(msg.optionalNestedMessage != null);
|
|
|
|
|
+
|
|
|
|
|
+ msg.optionalNestedMessage = nestedMsg;
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 8);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertTrue(newMsg.optionalNestedMessage != null);
|
|
|
|
|
+ assertEquals(1, newMsg.optionalNestedMessage.bb);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoOptionalForeignMessage() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ NanoOuterClass.ForeignMessageNano nestedMsg = new NanoOuterClass.ForeignMessageNano();
|
|
|
|
|
+ nestedMsg.c = 1;
|
|
|
|
|
+ assertFalse(msg.optionalForeignMessage != null);
|
|
|
|
|
+ msg.optionalForeignMessage = nestedMsg;
|
|
|
|
|
+ assertTrue(msg.optionalForeignMessage != null);
|
|
|
|
|
+ assertEquals(1, msg.optionalForeignMessage.c);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertFalse(msg.optionalForeignMessage != null);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .optionalForeignMessage = new NanoOuterClass.ForeignMessageNano();
|
|
|
|
|
+ msg.optionalForeignMessage.c = 2;
|
|
|
|
|
+ assertTrue(msg.optionalForeignMessage != null);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertFalse(msg.optionalForeignMessage != null);
|
|
|
|
|
+
|
|
|
|
|
+ msg.optionalForeignMessage = nestedMsg;
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 8);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertTrue(newMsg.optionalForeignMessage != null);
|
|
|
|
|
+ assertEquals(1, newMsg.optionalForeignMessage.c);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoOptionalImportMessage() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ UnittestImportNano.ImportMessageNano nestedMsg = new UnittestImportNano.ImportMessageNano();
|
|
|
|
|
+ nestedMsg.d = 1;
|
|
|
|
|
+ assertFalse(msg.optionalImportMessage != null);
|
|
|
|
|
+ msg.optionalImportMessage = nestedMsg;
|
|
|
|
|
+ assertTrue(msg.optionalImportMessage != null);
|
|
|
|
|
+ assertEquals(1, msg.optionalImportMessage.d);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertFalse(msg.optionalImportMessage != null);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .optionalImportMessage = new UnittestImportNano.ImportMessageNano();
|
|
|
|
|
+ msg.optionalImportMessage.d = 2;
|
|
|
|
|
+ assertTrue(msg.optionalImportMessage != null);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertFalse(msg.optionalImportMessage != null);
|
|
|
|
|
+
|
|
|
|
|
+ msg.optionalImportMessage = nestedMsg;
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 8);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertTrue(newMsg.optionalImportMessage != null);
|
|
|
|
|
+ assertEquals(1, newMsg.optionalImportMessage.d);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoOptionalNestedEnum() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ msg.optionalNestedEnum = TestAllTypesNano.BAR;
|
|
|
|
|
+ assertEquals(TestAllTypesNano.BAR, msg.optionalNestedEnum);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .optionalNestedEnum = TestAllTypesNano.BAZ;
|
|
|
|
|
+ assertEquals(TestAllTypesNano.BAZ, msg.optionalNestedEnum);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(TestAllTypesNano.FOO, msg.optionalNestedEnum);
|
|
|
|
|
+
|
|
|
|
|
+ msg.optionalNestedEnum = TestAllTypesNano.BAR;
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 6);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(TestAllTypesNano.BAR, newMsg.optionalNestedEnum);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoOptionalForeignEnum() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ msg.optionalForeignEnum = NanoOuterClass.FOREIGN_NANO_BAR;
|
|
|
|
|
+ assertEquals(NanoOuterClass.FOREIGN_NANO_BAR, msg.optionalForeignEnum);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .optionalForeignEnum = NanoOuterClass.FOREIGN_NANO_BAZ;
|
|
|
|
|
+ assertEquals(NanoOuterClass.FOREIGN_NANO_BAZ, msg.optionalForeignEnum);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(NanoOuterClass.FOREIGN_NANO_FOO, msg.optionalForeignEnum);
|
|
|
|
|
+
|
|
|
|
|
+ msg.optionalForeignEnum = NanoOuterClass.FOREIGN_NANO_BAR;
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 6);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(NanoOuterClass.FOREIGN_NANO_BAR, newMsg.optionalForeignEnum);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoOptionalImportEnum() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ msg.optionalImportEnum = UnittestImportNano.IMPORT_NANO_BAR;
|
|
|
|
|
+ assertEquals(UnittestImportNano.IMPORT_NANO_BAR, msg.optionalImportEnum);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .optionalImportEnum = UnittestImportNano.IMPORT_NANO_BAZ;
|
|
|
|
|
+ assertEquals(UnittestImportNano.IMPORT_NANO_BAZ, msg.optionalImportEnum);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(UnittestImportNano.IMPORT_NANO_FOO, msg.optionalImportEnum);
|
|
|
|
|
+
|
|
|
|
|
+ msg.optionalImportEnum = UnittestImportNano.IMPORT_NANO_BAR;
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 6);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(UnittestImportNano.IMPORT_NANO_BAR, newMsg.optionalImportEnum);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoOptionalStringPiece() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ msg.optionalStringPiece = "hello";
|
|
|
|
|
+ assertEquals("hello", msg.optionalStringPiece);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertTrue(msg.optionalStringPiece.isEmpty());
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .optionalStringPiece = "hello2";
|
|
|
|
|
+ assertEquals("hello2", msg.optionalStringPiece);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertTrue(msg.optionalStringPiece.isEmpty());
|
|
|
|
|
+
|
|
|
|
|
+ msg.optionalStringPiece = "bye";
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 9);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertTrue(newMsg.optionalStringPiece != null);
|
|
|
|
|
+ assertEquals("bye", newMsg.optionalStringPiece);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoOptionalCord() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ msg.optionalCord = "hello";
|
|
|
|
|
+ assertEquals("hello", msg.optionalCord);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertTrue(msg.optionalCord.isEmpty());
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .optionalCord = "hello2";
|
|
|
|
|
+ assertEquals("hello2", msg.optionalCord);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertTrue(msg.optionalCord.isEmpty());
|
|
|
|
|
+
|
|
|
|
|
+ msg.optionalCord = "bye";
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 9);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertTrue(newMsg.optionalCord != null);
|
|
|
|
|
+ assertEquals("bye", newMsg.optionalCord);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedInt32() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ assertEquals(0, msg.repeatedInt32.length);
|
|
|
|
|
+ msg.repeatedInt32 = new int[] { 123, 789, 456 };
|
|
|
|
|
+ assertEquals(789, msg.repeatedInt32[1]);
|
|
|
|
|
+ assertEquals(456, msg.repeatedInt32[2]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedInt32.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedInt32 = new int[] { 456 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedInt32.length);
|
|
|
|
|
+ assertEquals(456, msg.repeatedInt32[0]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedInt32.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedInt32 = new int[] { 123 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedInt32.length);
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 6);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedInt32.length);
|
|
|
|
|
+ assertEquals(123, newMsg.repeatedInt32[0]);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedInt32 = new int[] { 123, 456 };
|
|
|
|
|
+ assertEquals(2, msg.repeatedInt32.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 10);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedInt32.length);
|
|
|
|
|
+ assertEquals(123, newMsg.repeatedInt32[0]);
|
|
|
|
|
+ assertEquals(456, newMsg.repeatedInt32[1]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedInt64() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ assertEquals(0, msg.repeatedInt64.length);
|
|
|
|
|
+ msg.repeatedInt64 = new long[] { 123, 789, 456 };
|
|
|
|
|
+ assertEquals(789, msg.repeatedInt64[1]);
|
|
|
|
|
+ assertEquals(456, msg.repeatedInt64[2]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedInt64.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedInt64 = new long[] { 456 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedInt64.length);
|
|
|
|
|
+ assertEquals(456, msg.repeatedInt64[0]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedInt64.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedInt64 = new long[] { 123 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedInt64.length);
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 6);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedInt64.length);
|
|
|
|
|
+ assertEquals(123, newMsg.repeatedInt64[0]);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedInt64 = new long[] { 123, 456 };
|
|
|
|
|
+ assertEquals(2, msg.repeatedInt64.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 10);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedInt64.length);
|
|
|
|
|
+ assertEquals(123, newMsg.repeatedInt64[0]);
|
|
|
|
|
+ assertEquals(456, newMsg.repeatedInt64[1]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedUint32() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ assertEquals(0, msg.repeatedUint32.length);
|
|
|
|
|
+ msg.repeatedUint32 = new int[] { 123, 789, 456 };
|
|
|
|
|
+ assertEquals(789, msg.repeatedUint32[1]);
|
|
|
|
|
+ assertEquals(456, msg.repeatedUint32[2]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedUint32.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedUint32 = new int[] { 456 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedUint32.length);
|
|
|
|
|
+ assertEquals(456, msg.repeatedUint32[0]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedUint32.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedUint32 = new int[] { 123 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedUint32.length);
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 6);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedUint32.length);
|
|
|
|
|
+ assertEquals(123, newMsg.repeatedUint32[0]);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedUint32 = new int[] { 123, 456 };
|
|
|
|
|
+ assertEquals(2, msg.repeatedUint32.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 10);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedUint32.length);
|
|
|
|
|
+ assertEquals(123, newMsg.repeatedUint32[0]);
|
|
|
|
|
+ assertEquals(456, newMsg.repeatedUint32[1]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedUint64() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ assertEquals(0, msg.repeatedUint64.length);
|
|
|
|
|
+ msg.repeatedUint64 = new long[] { 123, 789, 456 };
|
|
|
|
|
+ assertEquals(789, msg.repeatedUint64[1]);
|
|
|
|
|
+ assertEquals(456, msg.repeatedUint64[2]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedUint64.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedUint64 = new long[] { 456 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedUint64.length);
|
|
|
|
|
+ assertEquals(456, msg.repeatedUint64[0]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedUint64.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedUint64 = new long[] { 123 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedUint64.length);
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 6);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedUint64.length);
|
|
|
|
|
+ assertEquals(123, newMsg.repeatedUint64[0]);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedUint64 = new long[] { 123, 456 };
|
|
|
|
|
+ assertEquals(2, msg.repeatedUint64.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 10);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedUint64.length);
|
|
|
|
|
+ assertEquals(123, newMsg.repeatedUint64[0]);
|
|
|
|
|
+ assertEquals(456, newMsg.repeatedUint64[1]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedSint32() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ assertEquals(0, msg.repeatedSint32.length);
|
|
|
|
|
+ msg.repeatedSint32 = new int[] { 123, 789, 456 };
|
|
|
|
|
+ assertEquals(789, msg.repeatedSint32[1]);
|
|
|
|
|
+ assertEquals(456, msg.repeatedSint32[2]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedSint32.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedSint32 = new int[] { 456 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedSint32.length);
|
|
|
|
|
+ assertEquals(456, msg.repeatedSint32[0]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedSint32.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedSint32 = new int[] { 123 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedSint32.length);
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 7);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedSint32.length);
|
|
|
|
|
+ assertEquals(123, newMsg.repeatedSint32[0]);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedSint32 = new int[] { 123, 456 };
|
|
|
|
|
+ assertEquals(2, msg.repeatedSint32.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 11);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedSint32.length);
|
|
|
|
|
+ assertEquals(123, newMsg.repeatedSint32[0]);
|
|
|
|
|
+ assertEquals(456, newMsg.repeatedSint32[1]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedSint64() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ assertEquals(0, msg.repeatedSint64.length);
|
|
|
|
|
+ msg.repeatedSint64 = new long[] { 123, 789, 456 };
|
|
|
|
|
+ assertEquals(789, msg.repeatedSint64[1]);
|
|
|
|
|
+ assertEquals(456, msg.repeatedSint64[2]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedSint64.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedSint64 = new long[] { 456 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedSint64.length);
|
|
|
|
|
+ assertEquals(456, msg.repeatedSint64[0]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedSint64.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedSint64 = new long[] { 123 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedSint64.length);
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 7);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedSint64.length);
|
|
|
|
|
+ assertEquals(123, newMsg.repeatedSint64[0]);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedSint64 = new long[] { 123, 456 };
|
|
|
|
|
+ assertEquals(2, msg.repeatedSint64.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 11);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedSint64.length);
|
|
|
|
|
+ assertEquals(123, newMsg.repeatedSint64[0]);
|
|
|
|
|
+ assertEquals(456, newMsg.repeatedSint64[1]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedFixed32() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ assertEquals(0, msg.repeatedFixed32.length);
|
|
|
|
|
+ msg.repeatedFixed32 = new int[] { 123, 789, 456 };
|
|
|
|
|
+ assertEquals(789, msg.repeatedFixed32[1]);
|
|
|
|
|
+ assertEquals(456, msg.repeatedFixed32[2]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedFixed32.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedFixed32 = new int[] { 456 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedFixed32.length);
|
|
|
|
|
+ assertEquals(456, msg.repeatedFixed32[0]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedFixed32.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedFixed32 = new int[] { 123 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedFixed32.length);
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 9);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedFixed32.length);
|
|
|
|
|
+ assertEquals(123, newMsg.repeatedFixed32[0]);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedFixed32 = new int[] { 123, 456 };
|
|
|
|
|
+ assertEquals(2, msg.repeatedFixed32.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 15);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedFixed32.length);
|
|
|
|
|
+ assertEquals(123, newMsg.repeatedFixed32[0]);
|
|
|
|
|
+ assertEquals(456, newMsg.repeatedFixed32[1]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedFixed64() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ assertEquals(0, msg.repeatedFixed64.length);
|
|
|
|
|
+ msg.repeatedFixed64 = new long[] { 123, 789, 456 };
|
|
|
|
|
+ assertEquals(789, msg.repeatedFixed64[1]);
|
|
|
|
|
+ assertEquals(456, msg.repeatedFixed64[2]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedFixed64.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedFixed64 = new long[] { 456 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedFixed64.length);
|
|
|
|
|
+ assertEquals(456, msg.repeatedFixed64[0]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedFixed64.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedFixed64 = new long[] { 123 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedFixed64.length);
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 13);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedFixed64.length);
|
|
|
|
|
+ assertEquals(123, newMsg.repeatedFixed64[0]);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedFixed64 = new long[] { 123, 456 };
|
|
|
|
|
+ assertEquals(2, msg.repeatedFixed64.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 23);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedFixed64.length);
|
|
|
|
|
+ assertEquals(123, newMsg.repeatedFixed64[0]);
|
|
|
|
|
+ assertEquals(456, newMsg.repeatedFixed64[1]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedSfixed32() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ assertEquals(0, msg.repeatedSfixed32.length);
|
|
|
|
|
+ msg.repeatedSfixed32 = new int[] { 123, 789, 456 };
|
|
|
|
|
+ assertEquals(789, msg.repeatedSfixed32[1]);
|
|
|
|
|
+ assertEquals(456, msg.repeatedSfixed32[2]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedSfixed32.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedSfixed32 = new int[] { 456 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedSfixed32.length);
|
|
|
|
|
+ assertEquals(456, msg.repeatedSfixed32[0]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedSfixed32.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedSfixed32 = new int[] { 123 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedSfixed32.length);
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 9);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedSfixed32.length);
|
|
|
|
|
+ assertEquals(123, newMsg.repeatedSfixed32[0]);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedSfixed32 = new int[] { 123, 456 };
|
|
|
|
|
+ assertEquals(2, msg.repeatedSfixed32.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 15);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedSfixed32.length);
|
|
|
|
|
+ assertEquals(123, newMsg.repeatedSfixed32[0]);
|
|
|
|
|
+ assertEquals(456, newMsg.repeatedSfixed32[1]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedSfixed64() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ assertEquals(0, msg.repeatedSfixed64.length);
|
|
|
|
|
+ msg.repeatedSfixed64 = new long[] { 123, 789, 456 };
|
|
|
|
|
+ assertEquals(789, msg.repeatedSfixed64[1]);
|
|
|
|
|
+ assertEquals(456, msg.repeatedSfixed64[2]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedSfixed64.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedSfixed64 = new long[] { 456 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedSfixed64.length);
|
|
|
|
|
+ assertEquals(456, msg.repeatedSfixed64[0]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedSfixed64.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedSfixed64 = new long[] { 123 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedSfixed64.length);
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 13);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedSfixed64.length);
|
|
|
|
|
+ assertEquals(123, newMsg.repeatedSfixed64[0]);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedSfixed64 = new long[] { 123, 456 };
|
|
|
|
|
+ assertEquals(2, msg.repeatedSfixed64.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 23);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedSfixed64.length);
|
|
|
|
|
+ assertEquals(123, newMsg.repeatedSfixed64[0]);
|
|
|
|
|
+ assertEquals(456, newMsg.repeatedSfixed64[1]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedFloat() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ assertEquals(0, msg.repeatedFloat.length);
|
|
|
|
|
+ msg.repeatedFloat = new float[] { 123f, 789f, 456f };
|
|
|
|
|
+ assertEquals(789f, msg.repeatedFloat[1]);
|
|
|
|
|
+ assertEquals(456f, msg.repeatedFloat[2]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedFloat.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedFloat = new float[] { 456f };
|
|
|
|
|
+ assertEquals(1, msg.repeatedFloat.length);
|
|
|
|
|
+ assertEquals(456f, msg.repeatedFloat[0]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedFloat.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedFloat = new float[] { 123f };
|
|
|
|
|
+ assertEquals(1, msg.repeatedFloat.length);
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 9);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedFloat.length);
|
|
|
|
|
+ assertEquals(123f, newMsg.repeatedFloat[0]);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedFloat = new float[] { 123f, 456f };
|
|
|
|
|
+ assertEquals(2, msg.repeatedFloat.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 15);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedFloat.length);
|
|
|
|
|
+ assertEquals(123f, newMsg.repeatedFloat[0]);
|
|
|
|
|
+ assertEquals(456f, newMsg.repeatedFloat[1]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedDouble() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ assertEquals(0, msg.repeatedDouble.length);
|
|
|
|
|
+ msg.repeatedDouble = new double[] { 123.0, 789.0, 456.0 };
|
|
|
|
|
+ assertEquals(789.0, msg.repeatedDouble[1]);
|
|
|
|
|
+ assertEquals(456.0, msg.repeatedDouble[2]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedDouble.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedDouble = new double[] { 456.0 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedDouble.length);
|
|
|
|
|
+ assertEquals(456.0, msg.repeatedDouble[0]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedDouble.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedDouble = new double[] { 123.0 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedDouble.length);
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 13);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedDouble.length);
|
|
|
|
|
+ assertEquals(123.0, newMsg.repeatedDouble[0]);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedDouble = new double[] { 123.0, 456.0 };
|
|
|
|
|
+ assertEquals(2, msg.repeatedDouble.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 23);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedDouble.length);
|
|
|
|
|
+ assertEquals(123.0, newMsg.repeatedDouble[0]);
|
|
|
|
|
+ assertEquals(456.0, newMsg.repeatedDouble[1]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedBool() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ assertEquals(0, msg.repeatedBool.length);
|
|
|
|
|
+ msg.repeatedBool = new boolean[] { false, true, false };
|
|
|
|
|
+ assertTrue(msg.repeatedBool[1]);
|
|
|
|
|
+ assertFalse(msg.repeatedBool[2]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedBool.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedBool = new boolean[] { true };
|
|
|
|
|
+ assertEquals(1, msg.repeatedBool.length);
|
|
|
|
|
+ assertTrue(msg.repeatedBool[0]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedBool.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedBool = new boolean[] { false };
|
|
|
|
|
+ assertEquals(1, msg.repeatedBool.length);
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 6);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedBool.length);
|
|
|
|
|
+ assertFalse(newMsg.repeatedBool[0]);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedBool = new boolean[] { true, false };
|
|
|
|
|
+ assertEquals(2, msg.repeatedBool.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 9);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedBool.length);
|
|
|
|
|
+ assertTrue(newMsg.repeatedBool[0]);
|
|
|
|
|
+ assertFalse(newMsg.repeatedBool[1]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedString() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ assertEquals(0, msg.repeatedString.length);
|
|
|
|
|
+ msg.repeatedString = new String[] { "hello", "bye", "boo" };
|
|
|
|
|
+ assertEquals("bye", msg.repeatedString[1]);
|
|
|
|
|
+ assertEquals("boo", msg.repeatedString[2]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedString.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedString = new String[] { "boo" };
|
|
|
|
|
+ assertEquals(1, msg.repeatedString.length);
|
|
|
|
|
+ assertEquals("boo", msg.repeatedString[0]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedString.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedString = new String[] { "" };
|
|
|
|
|
+ assertEquals(1, msg.repeatedString.length);
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 6);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedString.length);
|
|
|
|
|
+ assertTrue(newMsg.repeatedString[0].isEmpty());
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedString = new String[] { "hello", "world" };
|
|
|
|
|
+ assertEquals(2, msg.repeatedString.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 19);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedString.length);
|
|
|
|
|
+ assertEquals("hello", newMsg.repeatedString[0]);
|
|
|
|
|
+ assertEquals("world", newMsg.repeatedString[1]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedBytes() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ assertEquals(0, msg.repeatedBytes.length);
|
|
|
|
|
+ msg.repeatedBytes = new byte[][] {
|
|
|
|
|
+ InternalNano.copyFromUtf8("hello"),
|
|
|
|
|
+ InternalNano.copyFromUtf8("bye"),
|
|
|
|
|
+ InternalNano.copyFromUtf8("boo")
|
|
|
|
|
+ };
|
|
|
|
|
+ assertEquals("bye", new String(msg.repeatedBytes[1], "UTF-8"));
|
|
|
|
|
+ assertEquals("boo", new String(msg.repeatedBytes[2], "UTF-8"));
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedBytes.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedBytes = new byte[][] { InternalNano.copyFromUtf8("boo") };
|
|
|
|
|
+ assertEquals(1, msg.repeatedBytes.length);
|
|
|
|
|
+ assertEquals("boo", new String(msg.repeatedBytes[0], "UTF-8"));
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedBytes.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedBytes = new byte[][] { InternalNano.copyFromUtf8("") };
|
|
|
|
|
+ assertEquals(1, msg.repeatedBytes.length);
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 6);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedBytes.length);
|
|
|
|
|
+ assertTrue(newMsg.repeatedBytes[0].length == 0);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedBytes = new byte[][] {
|
|
|
|
|
+ InternalNano.copyFromUtf8("hello"),
|
|
|
|
|
+ InternalNano.copyFromUtf8("world")
|
|
|
|
|
+ };
|
|
|
|
|
+ assertEquals(2, msg.repeatedBytes.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 19);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedBytes.length);
|
|
|
|
|
+ assertEquals("hello", new String(newMsg.repeatedBytes[0], "UTF-8"));
|
|
|
|
|
+ assertEquals("world", new String(newMsg.repeatedBytes[1], "UTF-8"));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedGroup() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ TestAllTypesNano.RepeatedGroup group0 =
|
|
|
|
|
+ new TestAllTypesNano.RepeatedGroup();
|
|
|
|
|
+ group0.a = 0;
|
|
|
|
|
+ TestAllTypesNano.RepeatedGroup group1 =
|
|
|
|
|
+ new TestAllTypesNano.RepeatedGroup();
|
|
|
|
|
+ group1.a = 1;
|
|
|
|
|
+ TestAllTypesNano.RepeatedGroup group2 =
|
|
|
|
|
+ new TestAllTypesNano.RepeatedGroup();
|
|
|
|
|
+ group2.a = 2;
|
|
|
|
|
+
|
|
|
|
|
+ msg.repeatedGroup = new TestAllTypesNano.RepeatedGroup[] { group0, group1, group2 };
|
|
|
|
|
+ assertEquals(3, msg.repeatedGroup.length);
|
|
|
|
|
+ assertEquals(0, msg.repeatedGroup[0].a);
|
|
|
|
|
+ assertEquals(1, msg.repeatedGroup[1].a);
|
|
|
|
|
+ assertEquals(2, msg.repeatedGroup[2].a);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedGroup.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedGroup = new TestAllTypesNano.RepeatedGroup[] { group1 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedGroup.length);
|
|
|
|
|
+ assertEquals(1, msg.repeatedGroup[0].a);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedGroup.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedGroup = new TestAllTypesNano.RepeatedGroup[] { group0 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedGroup.length);
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 7);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedGroup.length);
|
|
|
|
|
+ assertEquals(0, newMsg.repeatedGroup[0].a);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedGroup = new TestAllTypesNano.RepeatedGroup[] { group0, group1 };
|
|
|
|
|
+ assertEquals(2, msg.repeatedGroup.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 14);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedGroup.length);
|
|
|
|
|
+ assertEquals(0, newMsg.repeatedGroup[0].a);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedGroup[1].a);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedNestedMessage() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ TestAllTypesNano.NestedMessage nestedMsg0 =
|
|
|
|
|
+ new TestAllTypesNano.NestedMessage();
|
|
|
|
|
+ nestedMsg0.bb = 0;
|
|
|
|
|
+ TestAllTypesNano.NestedMessage nestedMsg1 =
|
|
|
|
|
+ new TestAllTypesNano.NestedMessage();
|
|
|
|
|
+ nestedMsg1.bb = 1;
|
|
|
|
|
+ TestAllTypesNano.NestedMessage nestedMsg2 =
|
|
|
|
|
+ new TestAllTypesNano.NestedMessage();
|
|
|
|
|
+ nestedMsg2.bb = 2;
|
|
|
|
|
+
|
|
|
|
|
+ msg.repeatedNestedMessage =
|
|
|
|
|
+ new TestAllTypesNano.NestedMessage[] { nestedMsg0, nestedMsg1, nestedMsg2 };
|
|
|
|
|
+ assertEquals(3, msg.repeatedNestedMessage.length);
|
|
|
|
|
+ assertEquals(0, msg.repeatedNestedMessage[0].bb);
|
|
|
|
|
+ assertEquals(1, msg.repeatedNestedMessage[1].bb);
|
|
|
|
|
+ assertEquals(2, msg.repeatedNestedMessage[2].bb);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedNestedMessage.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedNestedMessage = new TestAllTypesNano.NestedMessage[] { nestedMsg1 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedNestedMessage.length);
|
|
|
|
|
+ assertEquals(1, msg.repeatedNestedMessage[0].bb);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedNestedMessage.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedNestedMessage = new TestAllTypesNano.NestedMessage[] { nestedMsg0 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedNestedMessage.length);
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 6);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedNestedMessage.length);
|
|
|
|
|
+ assertEquals(0, newMsg.repeatedNestedMessage[0].bb);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedNestedMessage = new TestAllTypesNano.NestedMessage[] { nestedMsg0, nestedMsg1 };
|
|
|
|
|
+ assertEquals(2, msg.repeatedNestedMessage.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 11);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedNestedMessage.length);
|
|
|
|
|
+ assertEquals(0, newMsg.repeatedNestedMessage[0].bb);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedNestedMessage[1].bb);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedForeignMessage() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ NanoOuterClass.ForeignMessageNano foreignMsg0 =
|
|
|
|
|
+ new NanoOuterClass.ForeignMessageNano();
|
|
|
|
|
+ foreignMsg0.c = 0;
|
|
|
|
|
+ NanoOuterClass.ForeignMessageNano foreignMsg1 =
|
|
|
|
|
+ new NanoOuterClass.ForeignMessageNano();
|
|
|
|
|
+ foreignMsg1.c = 1;
|
|
|
|
|
+ NanoOuterClass.ForeignMessageNano foreignMsg2 =
|
|
|
|
|
+ new NanoOuterClass.ForeignMessageNano();
|
|
|
|
|
+ foreignMsg2.c = 2;
|
|
|
|
|
+
|
|
|
|
|
+ msg.repeatedForeignMessage =
|
|
|
|
|
+ new NanoOuterClass.ForeignMessageNano[] { foreignMsg0, foreignMsg1, foreignMsg2 };
|
|
|
|
|
+ assertEquals(3, msg.repeatedForeignMessage.length);
|
|
|
|
|
+ assertEquals(0, msg.repeatedForeignMessage[0].c);
|
|
|
|
|
+ assertEquals(1, msg.repeatedForeignMessage[1].c);
|
|
|
|
|
+ assertEquals(2, msg.repeatedForeignMessage[2].c);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedForeignMessage.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedForeignMessage = new NanoOuterClass.ForeignMessageNano[] { foreignMsg1 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedForeignMessage.length);
|
|
|
|
|
+ assertEquals(1, msg.repeatedForeignMessage[0].c);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedForeignMessage.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedForeignMessage = new NanoOuterClass.ForeignMessageNano[] { foreignMsg0 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedForeignMessage.length);
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 6);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedForeignMessage.length);
|
|
|
|
|
+ assertEquals(0, newMsg.repeatedForeignMessage[0].c);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedForeignMessage = new NanoOuterClass.ForeignMessageNano[] { foreignMsg0, foreignMsg1 };
|
|
|
|
|
+ assertEquals(2, msg.repeatedForeignMessage.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 11);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedForeignMessage.length);
|
|
|
|
|
+ assertEquals(0, newMsg.repeatedForeignMessage[0].c);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedForeignMessage[1].c);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedImportMessage() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ UnittestImportNano.ImportMessageNano foreignMsg0 =
|
|
|
|
|
+ new UnittestImportNano.ImportMessageNano();
|
|
|
|
|
+ foreignMsg0.d = 0;
|
|
|
|
|
+ UnittestImportNano.ImportMessageNano foreignMsg1 =
|
|
|
|
|
+ new UnittestImportNano.ImportMessageNano();
|
|
|
|
|
+ foreignMsg1.d = 1;
|
|
|
|
|
+ UnittestImportNano.ImportMessageNano foreignMsg2 =
|
|
|
|
|
+ new UnittestImportNano.ImportMessageNano();
|
|
|
|
|
+ foreignMsg2.d = 2;
|
|
|
|
|
+
|
|
|
|
|
+ msg.repeatedImportMessage =
|
|
|
|
|
+ new UnittestImportNano.ImportMessageNano[] { foreignMsg0, foreignMsg1, foreignMsg2 };
|
|
|
|
|
+ assertEquals(3, msg.repeatedImportMessage.length);
|
|
|
|
|
+ assertEquals(0, msg.repeatedImportMessage[0].d);
|
|
|
|
|
+ assertEquals(1, msg.repeatedImportMessage[1].d);
|
|
|
|
|
+ assertEquals(2, msg.repeatedImportMessage[2].d);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedImportMessage.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedImportMessage = new UnittestImportNano.ImportMessageNano[] { foreignMsg1 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedImportMessage.length);
|
|
|
|
|
+ assertEquals(1, msg.repeatedImportMessage[0].d);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedImportMessage.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedImportMessage = new UnittestImportNano.ImportMessageNano[] { foreignMsg0 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedImportMessage.length);
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 6);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedImportMessage.length);
|
|
|
|
|
+ assertEquals(0, newMsg.repeatedImportMessage[0].d);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedImportMessage = new UnittestImportNano.ImportMessageNano[] { foreignMsg0, foreignMsg1 };
|
|
|
|
|
+ assertEquals(2, msg.repeatedImportMessage.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 11);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedImportMessage.length);
|
|
|
|
|
+ assertEquals(0, newMsg.repeatedImportMessage[0].d);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedImportMessage[1].d);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedNestedEnum() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ msg.repeatedNestedEnum = new int[] {
|
|
|
|
|
+ TestAllTypesNano.FOO,
|
|
|
|
|
+ TestAllTypesNano.BAR,
|
|
|
|
|
+ TestAllTypesNano.BAZ
|
|
|
|
|
+ };
|
|
|
|
|
+ assertEquals(3, msg.repeatedNestedEnum.length);
|
|
|
|
|
+ assertEquals(TestAllTypesNano.FOO, msg.repeatedNestedEnum[0]);
|
|
|
|
|
+ assertEquals(TestAllTypesNano.BAR, msg.repeatedNestedEnum[1]);
|
|
|
|
|
+ assertEquals(TestAllTypesNano.BAZ, msg.repeatedNestedEnum[2]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedNestedEnum.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedNestedEnum = new int[] { TestAllTypesNano.BAR };
|
|
|
|
|
+ assertEquals(1, msg.repeatedNestedEnum.length);
|
|
|
|
|
+ assertEquals(TestAllTypesNano.BAR, msg.repeatedNestedEnum[0]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedNestedEnum.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedNestedEnum = new int[] { TestAllTypesNano.FOO };
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 6);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedNestedEnum.length);
|
|
|
|
|
+ assertEquals(TestAllTypesNano.FOO, msg.repeatedNestedEnum[0]);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedNestedEnum = new int[] { TestAllTypesNano.FOO, TestAllTypesNano.BAR };
|
|
|
|
|
+ assertEquals(2, msg.repeatedNestedEnum.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 9);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedNestedEnum.length);
|
|
|
|
|
+ assertEquals(TestAllTypesNano.FOO, msg.repeatedNestedEnum[0]);
|
|
|
|
|
+ assertEquals(TestAllTypesNano.BAR, msg.repeatedNestedEnum[1]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedForeignEnum() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ msg.repeatedForeignEnum = new int[] {
|
|
|
|
|
+ NanoOuterClass.FOREIGN_NANO_FOO,
|
|
|
|
|
+ NanoOuterClass.FOREIGN_NANO_BAR,
|
|
|
|
|
+ NanoOuterClass.FOREIGN_NANO_BAZ
|
|
|
|
|
+ };
|
|
|
|
|
+ assertEquals(3, msg.repeatedForeignEnum.length);
|
|
|
|
|
+ assertEquals(NanoOuterClass.FOREIGN_NANO_FOO, msg.repeatedForeignEnum[0]);
|
|
|
|
|
+ assertEquals(NanoOuterClass.FOREIGN_NANO_BAR, msg.repeatedForeignEnum[1]);
|
|
|
|
|
+ assertEquals(NanoOuterClass.FOREIGN_NANO_BAZ, msg.repeatedForeignEnum[2]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedForeignEnum.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedForeignEnum = new int[] { NanoOuterClass.FOREIGN_NANO_BAR };
|
|
|
|
|
+ assertEquals(1, msg.repeatedForeignEnum.length);
|
|
|
|
|
+ assertEquals(NanoOuterClass.FOREIGN_NANO_BAR, msg.repeatedForeignEnum[0]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedForeignEnum.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedForeignEnum = new int[] { NanoOuterClass.FOREIGN_NANO_FOO };
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 6);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedForeignEnum.length);
|
|
|
|
|
+ assertEquals(NanoOuterClass.FOREIGN_NANO_FOO, msg.repeatedForeignEnum[0]);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedForeignEnum = new int[] {
|
|
|
|
|
+ NanoOuterClass.FOREIGN_NANO_FOO,
|
|
|
|
|
+ NanoOuterClass.FOREIGN_NANO_BAR
|
|
|
|
|
+ };
|
|
|
|
|
+ assertEquals(2, msg.repeatedForeignEnum.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 9);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedForeignEnum.length);
|
|
|
|
|
+ assertEquals(NanoOuterClass.FOREIGN_NANO_FOO, msg.repeatedForeignEnum[0]);
|
|
|
|
|
+ assertEquals(NanoOuterClass.FOREIGN_NANO_BAR, msg.repeatedForeignEnum[1]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedImportEnum() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ msg.repeatedImportEnum = new int[] {
|
|
|
|
|
+ UnittestImportNano.IMPORT_NANO_FOO,
|
|
|
|
|
+ UnittestImportNano.IMPORT_NANO_BAR,
|
|
|
|
|
+ UnittestImportNano.IMPORT_NANO_BAZ
|
|
|
|
|
+ };
|
|
|
|
|
+ assertEquals(3, msg.repeatedImportEnum.length);
|
|
|
|
|
+ assertEquals(UnittestImportNano.IMPORT_NANO_FOO, msg.repeatedImportEnum[0]);
|
|
|
|
|
+ assertEquals(UnittestImportNano.IMPORT_NANO_BAR, msg.repeatedImportEnum[1]);
|
|
|
|
|
+ assertEquals(UnittestImportNano.IMPORT_NANO_BAZ, msg.repeatedImportEnum[2]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedImportEnum.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedImportEnum = new int[] { UnittestImportNano.IMPORT_NANO_BAR };
|
|
|
|
|
+ assertEquals(1, msg.repeatedImportEnum.length);
|
|
|
|
|
+ assertEquals(UnittestImportNano.IMPORT_NANO_BAR, msg.repeatedImportEnum[0]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedImportEnum.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedImportEnum = new int[] { UnittestImportNano.IMPORT_NANO_FOO };
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 6);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedImportEnum.length);
|
|
|
|
|
+ assertEquals(UnittestImportNano.IMPORT_NANO_FOO, msg.repeatedImportEnum[0]);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedImportEnum = new int[] {
|
|
|
|
|
+ UnittestImportNano.IMPORT_NANO_FOO,
|
|
|
|
|
+ UnittestImportNano.IMPORT_NANO_BAR
|
|
|
|
|
+ };
|
|
|
|
|
+ assertEquals(2, msg.repeatedImportEnum.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 9);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedImportEnum.length);
|
|
|
|
|
+ assertEquals(UnittestImportNano.IMPORT_NANO_FOO, msg.repeatedImportEnum[0]);
|
|
|
|
|
+ assertEquals(UnittestImportNano.IMPORT_NANO_BAR, msg.repeatedImportEnum[1]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedStringPiece() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ assertEquals(0, msg.repeatedStringPiece.length);
|
|
|
|
|
+ msg.repeatedStringPiece = new String[] { "hello", "bye", "boo" };
|
|
|
|
|
+ assertEquals("bye", msg.repeatedStringPiece[1]);
|
|
|
|
|
+ assertEquals("boo", msg.repeatedStringPiece[2]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedStringPiece.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedStringPiece = new String[] { "boo" };
|
|
|
|
|
+ assertEquals(1, msg.repeatedStringPiece.length);
|
|
|
|
|
+ assertEquals("boo", msg.repeatedStringPiece[0]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedStringPiece.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedStringPiece = new String[] { "" };
|
|
|
|
|
+ assertEquals(1, msg.repeatedStringPiece.length);
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 6);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedStringPiece.length);
|
|
|
|
|
+ assertTrue(newMsg.repeatedStringPiece[0].isEmpty());
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedStringPiece = new String[] { "hello", "world" };
|
|
|
|
|
+ assertEquals(2, msg.repeatedStringPiece.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 19);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedStringPiece.length);
|
|
|
|
|
+ assertEquals("hello", newMsg.repeatedStringPiece[0]);
|
|
|
|
|
+ assertEquals("world", newMsg.repeatedStringPiece[1]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedCord() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ assertEquals(0, msg.repeatedCord.length);
|
|
|
|
|
+ msg.repeatedCord = new String[] { "hello", "bye", "boo" };
|
|
|
|
|
+ assertEquals("bye", msg.repeatedCord[1]);
|
|
|
|
|
+ assertEquals("boo", msg.repeatedCord[2]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedCord.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedCord = new String[] { "boo" };
|
|
|
|
|
+ assertEquals(1, msg.repeatedCord.length);
|
|
|
|
|
+ assertEquals("boo", msg.repeatedCord[0]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedCord.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedCord = new String[] { "" };
|
|
|
|
|
+ assertEquals(1, msg.repeatedCord.length);
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 6);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedCord.length);
|
|
|
|
|
+ assertTrue(newMsg.repeatedCord[0].isEmpty());
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedCord = new String[] { "hello", "world" };
|
|
|
|
|
+ assertEquals(2, msg.repeatedCord.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 19);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedCord.length);
|
|
|
|
|
+ assertEquals("hello", newMsg.repeatedCord[0]);
|
|
|
|
|
+ assertEquals("world", newMsg.repeatedCord[1]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedPackedInt32() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ assertEquals(0, msg.repeatedPackedInt32.length);
|
|
|
|
|
+ msg.repeatedPackedInt32 = new int[] { 123, 789, 456 };
|
|
|
|
|
+ assertEquals(789, msg.repeatedPackedInt32[1]);
|
|
|
|
|
+ assertEquals(456, msg.repeatedPackedInt32[2]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedPackedInt32.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedPackedInt32 = new int[] { 456 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedPackedInt32.length);
|
|
|
|
|
+ assertEquals(456, msg.repeatedPackedInt32[0]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedPackedInt32.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedPackedInt32 = new int[] { 123 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedPackedInt32.length);
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 7);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedPackedInt32.length);
|
|
|
|
|
+ assertEquals(123, newMsg.repeatedPackedInt32[0]);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedPackedInt32 = new int[] { 123, 456 };
|
|
|
|
|
+ assertEquals(2, msg.repeatedPackedInt32.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 9);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedPackedInt32.length);
|
|
|
|
|
+ assertEquals(123, newMsg.repeatedPackedInt32[0]);
|
|
|
|
|
+ assertEquals(456, newMsg.repeatedPackedInt32[1]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedPackedSfixed64() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ assertEquals(0, msg.repeatedPackedSfixed64.length);
|
|
|
|
|
+ msg.repeatedPackedSfixed64 = new long[] { 123, 789, 456 };
|
|
|
|
|
+ assertEquals(789, msg.repeatedPackedSfixed64[1]);
|
|
|
|
|
+ assertEquals(456, msg.repeatedPackedSfixed64[2]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedPackedSfixed64.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedPackedSfixed64 = new long[] { 456 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedPackedSfixed64.length);
|
|
|
|
|
+ assertEquals(456, msg.repeatedPackedSfixed64[0]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedPackedSfixed64.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedPackedSfixed64 = new long[] { 123 };
|
|
|
|
|
+ assertEquals(1, msg.repeatedPackedSfixed64.length);
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 14);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedPackedSfixed64.length);
|
|
|
|
|
+ assertEquals(123, newMsg.repeatedPackedSfixed64[0]);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedPackedSfixed64 = new long[] { 123, 456 };
|
|
|
|
|
+ assertEquals(2, msg.repeatedPackedSfixed64.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 22);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedPackedSfixed64.length);
|
|
|
|
|
+ assertEquals(123, newMsg.repeatedPackedSfixed64[0]);
|
|
|
|
|
+ assertEquals(456, newMsg.repeatedPackedSfixed64[1]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedPackedNestedEnum() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ msg.repeatedPackedNestedEnum = new int[] {
|
|
|
|
|
+ TestAllTypesNano.FOO,
|
|
|
|
|
+ TestAllTypesNano.BAR,
|
|
|
|
|
+ TestAllTypesNano.BAZ
|
|
|
|
|
+ };
|
|
|
|
|
+ assertEquals(3, msg.repeatedPackedNestedEnum.length);
|
|
|
|
|
+ assertEquals(TestAllTypesNano.FOO, msg.repeatedPackedNestedEnum[0]);
|
|
|
|
|
+ assertEquals(TestAllTypesNano.BAR, msg.repeatedPackedNestedEnum[1]);
|
|
|
|
|
+ assertEquals(TestAllTypesNano.BAZ, msg.repeatedPackedNestedEnum[2]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedPackedNestedEnum.length);
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedPackedNestedEnum = new int[] { TestAllTypesNano.BAR };
|
|
|
|
|
+ assertEquals(1, msg.repeatedPackedNestedEnum.length);
|
|
|
|
|
+ assertEquals(TestAllTypesNano.BAR, msg.repeatedPackedNestedEnum[0]);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ assertEquals(0, msg.repeatedPackedNestedEnum.length);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 1 entry
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedPackedNestedEnum = new int[] { TestAllTypesNano.FOO };
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 7);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(1, newMsg.repeatedPackedNestedEnum.length);
|
|
|
|
|
+ assertEquals(TestAllTypesNano.FOO, msg.repeatedPackedNestedEnum[0]);
|
|
|
|
|
+
|
|
|
|
|
+ // Test 2 entries
|
|
|
|
|
+ msg.clear()
|
|
|
|
|
+ .repeatedPackedNestedEnum = new int[] { TestAllTypesNano.FOO, TestAllTypesNano.BAR };
|
|
|
|
|
+ assertEquals(2, msg.repeatedPackedNestedEnum.length);
|
|
|
|
|
+ result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 8);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+
|
|
|
|
|
+ newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(2, newMsg.repeatedPackedNestedEnum.length);
|
|
|
|
|
+ assertEquals(TestAllTypesNano.FOO, msg.repeatedPackedNestedEnum[0]);
|
|
|
|
|
+ assertEquals(TestAllTypesNano.BAR, msg.repeatedPackedNestedEnum[1]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedInt32ReMerge() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ msg.repeatedInt32 = new int[] { 234 };
|
|
|
|
|
+ byte [] result1 = MessageNano.toByteArray(msg);
|
|
|
|
|
+
|
|
|
|
|
+ msg.clear().optionalInt32 = 789;
|
|
|
|
|
+ byte [] result2 = MessageNano.toByteArray(msg);
|
|
|
|
|
+
|
|
|
|
|
+ msg.clear().repeatedInt32 = new int[] { 123, 456 };
|
|
|
|
|
+ byte [] result3 = MessageNano.toByteArray(msg);
|
|
|
|
|
+
|
|
|
|
|
+ // Concatenate the three serializations and read as one message.
|
|
|
|
|
+ byte [] result = new byte[result1.length + result2.length + result3.length];
|
|
|
|
|
+ System.arraycopy(result1, 0, result, 0, result1.length);
|
|
|
|
|
+ System.arraycopy(result2, 0, result, result1.length, result2.length);
|
|
|
|
|
+ System.arraycopy(result3, 0, result, result1.length + result2.length, result3.length);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(789, newMsg.optionalInt32);
|
|
|
|
|
+ assertEquals(3, newMsg.repeatedInt32.length);
|
|
|
|
|
+ assertEquals(234, newMsg.repeatedInt32[0]);
|
|
|
|
|
+ assertEquals(123, newMsg.repeatedInt32[1]);
|
|
|
|
|
+ assertEquals(456, newMsg.repeatedInt32[2]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedNestedEnumReMerge() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ msg.repeatedNestedEnum = new int[] { TestAllTypesNano.FOO };
|
|
|
|
|
+ byte [] result1 = MessageNano.toByteArray(msg);
|
|
|
|
|
+
|
|
|
|
|
+ msg.clear().optionalInt32 = 789;
|
|
|
|
|
+ byte [] result2 = MessageNano.toByteArray(msg);
|
|
|
|
|
+
|
|
|
|
|
+ msg.clear().repeatedNestedEnum = new int[] { TestAllTypesNano.BAR, TestAllTypesNano.FOO };
|
|
|
|
|
+ byte [] result3 = MessageNano.toByteArray(msg);
|
|
|
|
|
+
|
|
|
|
|
+ // Concatenate the three serializations and read as one message.
|
|
|
|
|
+ byte [] result = new byte[result1.length + result2.length + result3.length];
|
|
|
|
|
+ System.arraycopy(result1, 0, result, 0, result1.length);
|
|
|
|
|
+ System.arraycopy(result2, 0, result, result1.length, result2.length);
|
|
|
|
|
+ System.arraycopy(result3, 0, result, result1.length + result2.length, result3.length);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(789, newMsg.optionalInt32);
|
|
|
|
|
+ assertEquals(3, newMsg.repeatedNestedEnum.length);
|
|
|
|
|
+ assertEquals(TestAllTypesNano.FOO, newMsg.repeatedNestedEnum[0]);
|
|
|
|
|
+ assertEquals(TestAllTypesNano.BAR, newMsg.repeatedNestedEnum[1]);
|
|
|
|
|
+ assertEquals(TestAllTypesNano.FOO, newMsg.repeatedNestedEnum[2]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoRepeatedNestedMessageReMerge() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ TestAllTypesNano.NestedMessage nestedMsg0 =
|
|
|
|
|
+ new TestAllTypesNano.NestedMessage();
|
|
|
|
|
+ nestedMsg0.bb = 0;
|
|
|
|
|
+ TestAllTypesNano.NestedMessage nestedMsg1 =
|
|
|
|
|
+ new TestAllTypesNano.NestedMessage();
|
|
|
|
|
+ nestedMsg1.bb = 1;
|
|
|
|
|
+ TestAllTypesNano.NestedMessage nestedMsg2 =
|
|
|
|
|
+ new TestAllTypesNano.NestedMessage();
|
|
|
|
|
+ nestedMsg2.bb = 2;
|
|
|
|
|
+
|
|
|
|
|
+ msg.repeatedNestedMessage = new TestAllTypesNano.NestedMessage[] { nestedMsg0 };
|
|
|
|
|
+ byte [] result1 = MessageNano.toByteArray(msg);
|
|
|
|
|
+
|
|
|
|
|
+ msg.clear().optionalInt32 = 789;
|
|
|
|
|
+ byte [] result2 = MessageNano.toByteArray(msg);
|
|
|
|
|
+
|
|
|
|
|
+ msg.clear().repeatedNestedMessage =
|
|
|
|
|
+ new TestAllTypesNano.NestedMessage[] { nestedMsg1, nestedMsg2 };
|
|
|
|
|
+ byte [] result3 = MessageNano.toByteArray(msg);
|
|
|
|
|
+
|
|
|
|
|
+ // Concatenate the three serializations and read as one message.
|
|
|
|
|
+ byte [] result = new byte[result1.length + result2.length + result3.length];
|
|
|
|
|
+ System.arraycopy(result1, 0, result, 0, result1.length);
|
|
|
|
|
+ System.arraycopy(result2, 0, result, result1.length, result2.length);
|
|
|
|
|
+ System.arraycopy(result3, 0, result, result1.length + result2.length, result3.length);
|
|
|
|
|
+
|
|
|
|
|
+ TestAllTypesNano newMsg = TestAllTypesNano.parseFrom(result);
|
|
|
|
|
+ assertEquals(789, newMsg.optionalInt32);
|
|
|
|
|
+ assertEquals(3, newMsg.repeatedNestedMessage.length);
|
|
|
|
|
+ assertEquals(nestedMsg0.bb, newMsg.repeatedNestedMessage[0].bb);
|
|
|
|
|
+ assertEquals(nestedMsg1.bb, newMsg.repeatedNestedMessage[1].bb);
|
|
|
|
|
+ assertEquals(nestedMsg2.bb, newMsg.repeatedNestedMessage[2].bb);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void testNanoDefaults() throws Exception {
|
|
|
|
|
+ TestAllTypesNano msg = new TestAllTypesNano();
|
|
|
|
|
+ for (int i = 0; i < 2; i++) {
|
|
|
|
|
+ assertEquals(41, msg.defaultInt32);
|
|
|
|
|
+ assertEquals(42, msg.defaultInt64);
|
|
|
|
|
+ assertEquals(43, msg.defaultUint32);
|
|
|
|
|
+ assertEquals(44, msg.defaultUint64);
|
|
|
|
|
+ assertEquals(-45, msg.defaultSint32);
|
|
|
|
|
+ assertEquals(46, msg.defaultSint64);
|
|
|
|
|
+ assertEquals(47, msg.defaultFixed32);
|
|
|
|
|
+ assertEquals(48, msg.defaultFixed64);
|
|
|
|
|
+ assertEquals(49, msg.defaultSfixed32);
|
|
|
|
|
+ assertEquals(-50, msg.defaultSfixed64);
|
|
|
|
|
+ assertTrue(51.5f == msg.defaultFloat);
|
|
|
|
|
+ assertTrue(52.0e3 == msg.defaultDouble);
|
|
|
|
|
+ assertEquals(true, msg.defaultBool);
|
|
|
|
|
+ assertEquals("hello", msg.defaultString);
|
|
|
|
|
+ assertEquals("world", new String(msg.defaultBytes, "UTF-8"));
|
|
|
|
|
+ assertEquals("dünya", msg.defaultStringNonascii);
|
|
|
|
|
+ assertEquals("dünyab", new String(msg.defaultBytesNonascii, "UTF-8"));
|
|
|
|
|
+ assertEquals(TestAllTypesNano.BAR, msg.defaultNestedEnum);
|
|
|
|
|
+ assertEquals(NanoOuterClass.FOREIGN_NANO_BAR, msg.defaultForeignEnum);
|
|
|
|
|
+ assertEquals(UnittestImportNano.IMPORT_NANO_BAR, msg.defaultImportEnum);
|
|
|
|
|
+
|
|
|
|
|
+ // Default values are not output, except for required fields.
|
|
|
|
|
+ byte [] result = MessageNano.toByteArray(msg);
|
|
|
|
|
+ int msgSerializedSize = msg.getSerializedSize();
|
|
|
|
|
+ //System.out.printf("mss=%d result.length=%d\n", msgSerializedSize, result.length);
|
|
|
|
|
+ assertTrue(msgSerializedSize == 3);
|
|
|
|
|
+ assertEquals(result.length, msgSerializedSize);
|
|
|
|
|
+ msg.clear();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * Test that a bug in skipRawBytes() has been fixed: if the skip skips
|
|
|
|
|
+ * exactly up to a limit, this should not break things.
|
|
|
|
|
+ */
|
|
|
|
|
+ public void testSkipRawBytesBug() throws Exception {
|
|
|
|
|
+ byte[] rawBytes = new byte[] { 1, 2 };
|
|
|
|
|
+ CodedInputByteBufferNano input = CodedInputByteBufferNano.newInstance(rawBytes);
|
|
|
|
|
+
|
|
|
|
|
+ int limit = input.pushLimit(1);
|
|
|
|
|
+ input.skipRawBytes(1);
|
|
|
|
|
+ input.popLimit(limit);
|
|
|
|
|
+ assertEquals(2, input.readRawByte());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * Test that a bug in skipRawBytes() has been fixed: if the skip skips
|
|
|
|
|
+ * past the end of a buffer with a limit that has been set past the end of
|
|
|
|
|
+ * that buffer, this should not break things.
|
|
|
|
|
+ */
|
|
|
|
|
+ public void testSkipRawBytesPastEndOfBufferWithLimit() throws Exception {
|
|
|
|
|
+ byte[] rawBytes = new byte[] { 1, 2, 3, 4, 5 };
|
|
|
|
|
+ CodedInputByteBufferNano input = CodedInputByteBufferNano.newInstance(rawBytes);
|
|
|
|
|
+
|
|
|
|
|
+ int limit = input.pushLimit(4);
|
|
|
|
|
+ // In order to expose the bug we need to read at least one byte to prime the
|
|
|
|
|
+ // buffer inside the CodedInputStream.
|
|
|
|
|
+ assertEquals(1, input.readRawByte());
|
|
|
|
|
+ // Skip to the end of the limit.
|
|
|
|
|
+ input.skipRawBytes(3);
|
|
|
|
|
+ assertTrue(input.isAtEnd());
|
|
|
|
|
+ input.popLimit(limit);
|
|
|
|
|
+ assertEquals(5, input.readRawByte());
|
|
|
|
|
+ }
|
|
|
|
|
+}
|