diff --git a/message_generation/src/test/java/org/ros/internal/message/RawMessageSerializationTest.java b/message_generation/src/test/java/org/ros/internal/message/RawMessageSerializationTest.java index 529bb61b109c27fefc16721bd936ad4bc170733e..aa131b95ab2808d14e570a52d2b355834b1d348b 100644 --- a/message_generation/src/test/java/org/ros/internal/message/RawMessageSerializationTest.java +++ b/message_generation/src/test/java/org/ros/internal/message/RawMessageSerializationTest.java @@ -19,6 +19,7 @@ package org.ros.internal.message; import static org.junit.Assert.assertTrue; import com.google.common.collect.Lists; +import java.util.Arrays; import org.jboss.netty.buffer.ChannelBuffer; import org.junit.Before; @@ -277,6 +278,16 @@ public class RawMessageSerializationTest { checkSerializeAndDeserialize(rawMessage); } + @Test + public void testChannelBufferFixedSizeWithIncompleteInitialization() { + topicDefinitionResourceProvider.add("foo/foo", "uint8[5] data"); + ChannelBuffer buffer = MessageBuffers.dynamicBuffer(); + buffer.writeBytes(new byte[] { 1, 2, 3 }); + RawMessage rawMessage = messageFactory.newFromType("foo/foo"); + rawMessage.setChannelBuffer("data", buffer); + checkSerializeAndDeserialize(rawMessage); + } + @Test public void testChannelBufferFixedSizeNoInitialization() { topicDefinitionResourceProvider.add("foo/foo", "uint8[5] data"); @@ -294,6 +305,14 @@ public class RawMessageSerializationTest { checkSerializeAndDeserialize(rawMessage); } + @Test + public void testInt32FixedSizeArrayWithIncompleteInitialization() { + topicDefinitionResourceProvider.add("foo/foo", "int32[5] data"); + RawMessage rawMessage = messageFactory.newFromType("foo/foo"); + rawMessage.setInt32Array("data", new int[] { 1, 2, 3 }); + checkSerializeAndDeserialize(rawMessage); + } + @Test public void testInt32FixedSizeArrayNoInitialization() { topicDefinitionResourceProvider.add("foo/foo", "int32[5] data"); @@ -308,6 +327,14 @@ public class RawMessageSerializationTest { rawMessage.setFloat64Array("data", new double[] { 1, 2, 3, 4, 5 }); checkSerializeAndDeserialize(rawMessage); } + + @Test + public void testFloat64FixedSizeArrayWithIncompleteInitialization() { + topicDefinitionResourceProvider.add("foo/foo", "float64[5] data"); + RawMessage rawMessage = messageFactory.newFromType("foo/foo"); + rawMessage.setFloat64Array("data", new double[] { 1, 2, 3 }); + checkSerializeAndDeserialize(rawMessage); + } @Test public void testFloat64FixedSizeArrayNoInitialization() { @@ -315,4 +342,29 @@ public class RawMessageSerializationTest { RawMessage rawMessage = messageFactory.newFromType("foo/foo"); checkSerializeAndDeserialize(rawMessage); } + + @Test + public void testStringFixedSizeArrayWithInitialization() { + topicDefinitionResourceProvider.add("foo/foo", "string[5] data"); + RawMessage rawMessage = messageFactory.newFromType("foo/foo"); + String[] stringArray = new String[] { "String 1", "String 2", "String 3", "String 4", "String 5" }; + rawMessage.setStringList("data", Arrays.asList(stringArray)); + checkSerializeAndDeserialize(rawMessage); + } + + @Test + public void testStringFixedSizeArrayWithIncompleteInitialization() { + topicDefinitionResourceProvider.add("foo/foo", "string[5] data"); + RawMessage rawMessage = messageFactory.newFromType("foo/foo"); + String[] stringArray = new String[] { "String 1", "String 2", "String 3" }; + rawMessage.setStringList("data", Arrays.asList(stringArray)); + checkSerializeAndDeserialize(rawMessage); + } + + @Test + public void testStringFixedSizeArrayWithNoInitialization() { + topicDefinitionResourceProvider.add("foo/foo", "string[5] data"); + RawMessage rawMessage = messageFactory.newFromType("foo/foo"); + checkSerializeAndDeserialize(rawMessage); + } }