fix for AMQ-1981

git-svn-id: https://svn.apache.org/repos/asf/activemq/trunk@705547 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Bosanac Dejan 2008-10-17 10:22:24 +00:00
parent fdee6e81e2
commit 4842547a5b
3 changed files with 50 additions and 9 deletions

View File

@ -31,10 +31,12 @@ import java.lang.reflect.Array;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.net.URI; import java.net.URI;
import java.net.URL; import java.net.URL;
import java.util.Enumeration;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
import org.apache.activemq.command.ActiveMQDestination; import org.apache.activemq.command.ActiveMQDestination;
import org.apache.activemq.command.ActiveMQMessage;
import org.apache.activemq.command.ActiveMQQueue; import org.apache.activemq.command.ActiveMQQueue;
import org.apache.activemq.command.ActiveMQTextMessage; import org.apache.activemq.command.ActiveMQTextMessage;
import org.apache.activemq.command.BrokerId; import org.apache.activemq.command.BrokerId;
@ -103,9 +105,9 @@ public abstract class DataFileGeneratorTestSupport extends TestSupport {
DataInputStream dis = new DataInputStream(in); DataInputStream dis = new DataInputStream(in);
Object actual = openWireformat.unmarshal(dis); Object actual = openWireformat.unmarshal(dis);
LOG.info("Parsed: " + actual);
assertBeansEqual("", new HashSet<Object>(), expected, actual); assertBeansEqual("", new HashSet<Object>(), expected, actual);
LOG.info("Parsed: " + actual);
} }
protected void assertBeansEqual(String message, Set<Object> comparedObjects, Object expected, Object actual) throws Exception { protected void assertBeansEqual(String message, Set<Object> comparedObjects, Object expected, Object actual) throws Exception {
@ -151,6 +153,8 @@ public abstract class DataFileGeneratorTestSupport extends TestSupport {
assertByteSequencesEqual(message, (ByteSequence)expectedValue, actualValue); assertByteSequencesEqual(message, (ByteSequence)expectedValue, actualValue);
} else if (expectedValue instanceof DataStructure) { } else if (expectedValue instanceof DataStructure) {
assertBeansEqual(message + name, comparedObjects, expectedValue, actualValue); assertBeansEqual(message + name, comparedObjects, expectedValue, actualValue);
} else if (expectedValue instanceof Enumeration) {
assertEnumerationEqual(message + name, comparedObjects, (Enumeration)expectedValue, (Enumeration)actualValue);
} else { } else {
assertEquals(message, expectedValue, actualValue); assertEquals(message, expectedValue, actualValue);
} }
@ -165,6 +169,14 @@ public abstract class DataFileGeneratorTestSupport extends TestSupport {
} }
} }
protected void assertEnumerationEqual(String message, Set<Object> comparedObjects, Enumeration expected, Enumeration actual) throws Exception {
while (expected.hasMoreElements()) {
Object expectedElem = expected.nextElement();
Object actualElem = actual.nextElement();
assertPropertyValuesEqual(message + ". element: " + expectedElem, comparedObjects, expectedElem, actualElem);
}
}
protected void assertPrimitiveArrayEqual(String message, Set<Object> comparedObjects, Object expected, Object actual) throws ArrayIndexOutOfBoundsException, IllegalArgumentException, protected void assertPrimitiveArrayEqual(String message, Set<Object> comparedObjects, Object expected, Object actual) throws ArrayIndexOutOfBoundsException, IllegalArgumentException,
Exception { Exception {
int length = Array.getLength(expected); int length = Array.getLength(expected);

View File

@ -16,8 +16,15 @@
*/ */
package org.apache.activemq.openwire.v1; package org.apache.activemq.openwire.v1;
import java.io.DataOutputStream;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import org.apache.activemq.command.BrokerId; import org.apache.activemq.command.BrokerId;
import org.apache.activemq.command.Message; import org.apache.activemq.command.Message;
import org.apache.activemq.util.ByteArrayOutputStream;
import org.apache.activemq.util.MarshallingSupport;
/** /**
* Test case for the OpenWire marshalling for Message NOTE!: This file is auto * Test case for the OpenWire marshalling for Message NOTE!: This file is auto
@ -49,13 +56,21 @@ public abstract class MessageTestSupport extends BaseCommandTestSupport {
info.setType("Type:10"); info.setType("Type:10");
{ {
byte data[] = "Content:11".getBytes(); ByteArrayOutputStream baos = new ByteArrayOutputStream();
info.setContent(new org.apache.activemq.util.ByteSequence(data, 0, data.length)); DataOutputStream dataOut = new DataOutputStream(baos);
MarshallingSupport.writeUTF8(dataOut, "Content:11");
dataOut.close();
info.setContent(baos.toByteSequence());
} }
{ {
byte data[] = "MarshalledProperties:12".getBytes(); Map map = new HashMap();
info.setMarshalledProperties(new org.apache.activemq.util.ByteSequence(data, 0, data.length)); map.put("MarshalledProperties", 12);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream os = new DataOutputStream(baos);
MarshallingSupport.marshalPrimitiveMap(map, os);
os.close();
info.setMarshalledProperties(baos.toByteSequence());
} }
info.setDataStructure(createDataStructure("DataStructure:13")); info.setDataStructure(createDataStructure("DataStructure:13"));

View File

@ -16,8 +16,14 @@
*/ */
package org.apache.activemq.openwire.v2; package org.apache.activemq.openwire.v2;
import java.io.DataOutputStream;
import java.util.HashMap;
import java.util.Map;
import org.apache.activemq.command.BrokerId; import org.apache.activemq.command.BrokerId;
import org.apache.activemq.command.Message; import org.apache.activemq.command.Message;
import org.apache.activemq.util.ByteArrayOutputStream;
import org.apache.activemq.util.MarshallingSupport;
/** /**
* Test case for the OpenWire marshalling for Message NOTE!: This file is auto * Test case for the OpenWire marshalling for Message NOTE!: This file is auto
@ -49,12 +55,20 @@ public abstract class MessageTestSupport extends BaseCommandTestSupport {
info.setTimestamp(2); info.setTimestamp(2);
info.setType("Type:10"); info.setType("Type:10");
{ {
byte data[] = "Content:11".getBytes(); ByteArrayOutputStream baos = new ByteArrayOutputStream();
info.setContent(new org.apache.activemq.util.ByteSequence(data, 0, data.length)); DataOutputStream dataOut = new DataOutputStream(baos);
MarshallingSupport.writeUTF8(dataOut, "Content:11");
dataOut.close();
info.setContent(baos.toByteSequence());
} }
{ {
byte data[] = "MarshalledProperties:12".getBytes(); Map map = new HashMap();
info.setMarshalledProperties(new org.apache.activemq.util.ByteSequence(data, 0, data.length)); map.put("MarshalledProperties", 12);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream os = new DataOutputStream(baos);
MarshallingSupport.marshalPrimitiveMap(map, os);
os.close();
info.setMarshalledProperties(baos.toByteSequence());
} }
info.setDataStructure(createDataStructure("DataStructure:13")); info.setDataStructure(createDataStructure("DataStructure:13"));
info.setTargetConsumerId(createConsumerId("TargetConsumerId:14")); info.setTargetConsumerId(createConsumerId("TargetConsumerId:14"));