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 4f3ce919..cf19530d 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 @@ 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; @@ -266,4 +267,127 @@ public void testFloat64Array() { rawMessage.setFloat64Array("data", new double[] { 1, 2, 3, 4, 5 }); checkSerializeAndDeserialize(rawMessage); } + + @Test + public void testChannelBufferFixedSizeWithInitialization() { + topicDefinitionResourceProvider.add("foo/foo", "uint8[5] data"); + ChannelBuffer buffer = MessageBuffers.dynamicBuffer(); + buffer.writeBytes(new byte[] { 1, 2, 3, 4, 5 }); + RawMessage rawMessage = messageFactory.newFromType("foo/foo"); + rawMessage.setChannelBuffer("data", buffer); + 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"); + ChannelBuffer buffer = MessageBuffers.dynamicBuffer(); + RawMessage rawMessage = messageFactory.newFromType("foo/foo"); + rawMessage.setChannelBuffer("data", buffer); + checkSerializeAndDeserialize(rawMessage); + } + + @Test + public void testInt32FixedSizeArrayWithInitialization() { + topicDefinitionResourceProvider.add("foo/foo", "int32[5] data"); + RawMessage rawMessage = messageFactory.newFromType("foo/foo"); + rawMessage.setInt32Array("data", new int[] { 1, 2, 3, 4, 5 }); + 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"); + RawMessage rawMessage = messageFactory.newFromType("foo/foo"); + checkSerializeAndDeserialize(rawMessage); + } + + @Test + public void testFloat64FixedSizeArrayWithInitialization() { + topicDefinitionResourceProvider.add("foo/foo", "float64[5] data"); + RawMessage rawMessage = messageFactory.newFromType("foo/foo"); + 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() { + topicDefinitionResourceProvider.add("foo/foo", "float64[5] data"); + 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); + } + + @Test + public void testByteFixedSizeArrayWithInitialization() { + topicDefinitionResourceProvider.add("foo/foo", "byte[5] data"); + RawMessage rawMessage = messageFactory.newFromType("foo/foo"); + rawMessage.setInt8Array("data", new byte[] { 1, 2, 3, 4, 5 }); + checkSerializeAndDeserialize(rawMessage); + } + + @Test + public void testByteFixedSizeArrayWithIncompleteInitialization() { + topicDefinitionResourceProvider.add("foo/foo", "byte[5] data"); + RawMessage rawMessage = messageFactory.newFromType("foo/foo"); + rawMessage.setInt8Array("data", new byte[] { 1, 2, 3 }); + checkSerializeAndDeserialize(rawMessage); + } + + @Test + public void testByteFixedSizeArrayWithNoInitialization() { + topicDefinitionResourceProvider.add("foo/foo", "byte[5] data"); + RawMessage rawMessage = messageFactory.newFromType("foo/foo"); + checkSerializeAndDeserialize(rawMessage); + } }