You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by lq...@apache.org on 2017/08/28 16:04:39 UTC
qpid-broker-j git commit: QPID-7896: [Java System Tests] Add more
conversion tests
Repository: qpid-broker-j
Updated Branches:
refs/heads/master dbaff6090 -> d3ca1343b
QPID-7896: [Java System Tests] Add more conversion tests
Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/d3ca1343
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/d3ca1343
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/d3ca1343
Branch: refs/heads/master
Commit: d3ca1343bf95408e23a9563efc98f31121ea3815
Parents: dbaff60
Author: Lorenz Quack <lq...@apache.org>
Authored: Mon Aug 28 16:17:41 2017 +0100
Committer: Lorenz Quack <lq...@apache.org>
Committed: Mon Aug 28 16:17:41 2017 +0100
----------------------------------------------------------------------
.../ClientInstructionBuilder.java | 9 +-
.../end_to_end_conversion/client/Client.java | 127 ++++++++-------
.../client/MessageCreator.java | 2 +-
.../client/MessageVerifier.java | 86 ++++++++--
.../client/MessagingInstruction.java | 12 ++
.../client/SerializableTestClass.java | 79 ++++++++++
.../SimpleConversionTest.java | 155 +++++++++++++++----
7 files changed, 367 insertions(+), 103 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/d3ca1343/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/ClientInstructionBuilder.java
----------------------------------------------------------------------
diff --git a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/ClientInstructionBuilder.java b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/ClientInstructionBuilder.java
index 7c50832..3559693 100644
--- a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/ClientInstructionBuilder.java
+++ b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/ClientInstructionBuilder.java
@@ -22,7 +22,6 @@ package org.apache.qpid.systests.end_to_end_conversion;
import java.io.Serializable;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -96,6 +95,14 @@ public class ClientInstructionBuilder
return this;
}
+ public ClientInstructionBuilder withConsumeReplyToJndiName(final String consumeReplyToJndiName)
+ {
+ MessagingInstruction.PublishMessage publishMessageInstruction =
+ (MessagingInstruction.PublishMessage) _clientInstructions.get(_clientInstructions.size() - 1);
+ publishMessageInstruction.setConsumeReplyToJndiName(consumeReplyToJndiName);
+ return this;
+ }
+
public List<ClientInstruction> build()
{
return _clientInstructions;
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/d3ca1343/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/Client.java
----------------------------------------------------------------------
diff --git a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/Client.java b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/Client.java
index fe875f1..b6ad152 100644
--- a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/Client.java
+++ b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/Client.java
@@ -167,10 +167,7 @@ public class Client
{
final MessagingInstruction.PublishMessage publishInstruction =
(MessagingInstruction.PublishMessage) instruction;
- final Destination destination =
- (Destination) context.lookup(publishInstruction.getDestinationJndiName());
- final MessageDescription messageDescription = publishInstruction.getMessageDescription();
- publishMessage(context, session, destination, messageDescription);
+ publishMessage(context, session, publishInstruction);
}
else if (instruction instanceof MessagingInstruction.ReceiveMessage)
{
@@ -203,8 +200,8 @@ public class Client
try
{
message = consumer.receive(RECEIVE_TIMEOUT);
- MessageVerifier.verifyMessage(messageDescription, message);
System.out.println(String.format("Received message: %s", message));
+ MessageVerifier.verifyMessage(messageDescription, message);
}
finally
{
@@ -222,81 +219,97 @@ public class Client
private void publishMessage(final Context context,
final Session session,
- final Destination queue,
- final MessageDescription messageDescription) throws Exception
+ final MessagingInstruction.PublishMessage publishMessageInstruction) throws Exception
{
+ final MessageDescription messageDescription = publishMessageInstruction.getMessageDescription();
+
Message message = MessageCreator.fromMessageDescription(session, messageDescription);
- Destination replyToDestination = null;
- if (messageDescription.getReplyToJndiName() != null)
+ MessageConsumer replyToConsumer = null;
+ try
{
- final String replyToJndiName = messageDescription.getReplyToJndiName();
- if (replyToJndiName.equals(EndToEndConversionTestBase.TEMPORARY_QUEUE_JNDI_NAME))
+ if (messageDescription.getReplyToJndiName() != null)
{
- replyToDestination = session.createTemporaryQueue();
+ final Destination replyToDestination, consumerReplyToDestination;
+ final String replyToJndiName = messageDescription.getReplyToJndiName();
+ if (replyToJndiName.equals(EndToEndConversionTestBase.TEMPORARY_QUEUE_JNDI_NAME))
+ {
+ replyToDestination = session.createTemporaryQueue();
+ }
+ else
+ {
+ replyToDestination = (Destination) context.lookup(replyToJndiName);
+ }
+
+ if (publishMessageInstruction.getConsumeReplyToJndiName() != null)
+ {
+ consumerReplyToDestination =
+ (Destination) context.lookup(publishMessageInstruction.getConsumeReplyToJndiName());
+ }
+ else
+ {
+ consumerReplyToDestination = replyToDestination;
+ }
+
+ message.setJMSReplyTo(replyToDestination);
+ replyToConsumer = session.createConsumer(consumerReplyToDestination);
}
- else
+
+ final Destination destination =
+ (Destination) context.lookup(publishMessageInstruction.getDestinationJndiName());
+ MessageProducer messageProducer = session.createProducer(destination);
+ try
{
- replyToDestination = (Destination) context.lookup(replyToJndiName);
+ messageProducer.send(message,
+ messageDescription.getHeader(MessageDescription.MessageHeader.DELIVERY_MODE,
+ DeliveryMode.NON_PERSISTENT),
+ messageDescription.getHeader(MessageDescription.MessageHeader.PRIORITY,
+ Message.DEFAULT_PRIORITY),
+ messageDescription.getHeader(MessageDescription.MessageHeader.EXPIRATION,
+ Message.DEFAULT_TIME_TO_LIVE));
+ System.out.println(String.format("Sent message: %s", message));
+ }
+ finally
+ {
+ messageProducer.close();
+ }
+
+ if (replyToConsumer != null)
+ {
+ receiveReply(replyToConsumer,
+ messageDescription.getHeader(MessageDescription.MessageHeader.CORRELATION_ID));
}
- message.setJMSReplyTo(replyToDestination);
- }
- MessageProducer messageProducer = session.createProducer(queue);
- try
- {
- messageProducer.send(message,
- messageDescription.getHeader(MessageDescription.MessageHeader.DELIVERY_MODE,
- DeliveryMode.NON_PERSISTENT),
- messageDescription.getHeader(MessageDescription.MessageHeader.PRIORITY,
- Message.DEFAULT_PRIORITY),
- messageDescription.getHeader(MessageDescription.MessageHeader.EXPIRATION,
- Message.DEFAULT_TIME_TO_LIVE));
- System.out.println(String.format("Sent message: %s", message));
}
finally
{
- messageProducer.close();
- }
-
- if (replyToDestination != null)
- {
- receiveReply(session,
- replyToDestination,
- messageDescription.getHeader(MessageDescription.MessageHeader.CORRELATION_ID));
+ if (replyToConsumer != null)
+ {
+ replyToConsumer.close();
+ }
}
}
- private void receiveReply(final Session session,
- final Destination jmsReplyTo,
- final Serializable expectedCorrelationId)
+ private void receiveReply(final MessageConsumer consumer, final Serializable expectedCorrelationId)
throws Exception
{
- final MessageConsumer consumer = session.createConsumer(jmsReplyTo);
- try
+ final Message message = consumer.receive(RECEIVE_TIMEOUT);
+ System.out.println(String.format("Received message: %s", message));
+ if (expectedCorrelationId != null)
{
- final Message message = consumer.receive(RECEIVE_TIMEOUT);
- System.out.println(String.format("Received message: %s", message));
- if (expectedCorrelationId != null)
+ if (expectedCorrelationId instanceof byte[])
{
- if (expectedCorrelationId instanceof byte[])
+ if (!Arrays.equals((byte[]) expectedCorrelationId, message.getJMSCorrelationIDAsBytes()))
{
- if (!Arrays.equals((byte[]) expectedCorrelationId, message.getJMSCorrelationIDAsBytes()))
- {
- throw new VerificationException("ReplyTo message has unexpected correlationId.");
- }
+ throw new VerificationException("ReplyTo message has unexpected correlationId.");
}
- else
+ }
+ else
+ {
+ if (!expectedCorrelationId.equals(message.getJMSCorrelationID()))
{
- if (!expectedCorrelationId.equals(message.getJMSCorrelationID()))
- {
- throw new VerificationException("ReplyTo message has unexpected correlationId.");
- }
+ throw new VerificationException("ReplyTo message has unexpected correlationId.");
}
}
}
- finally
- {
- consumer.close();
- }
}
private void sendReply(final Session session, final Destination jmsReplyTo, final Serializable correlationId)
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/d3ca1343/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/MessageCreator.java
----------------------------------------------------------------------
diff --git a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/MessageCreator.java b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/MessageCreator.java
index 8028c33..6414c27 100644
--- a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/MessageCreator.java
+++ b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/MessageCreator.java
@@ -64,7 +64,7 @@ public class MessageCreator
{
throw new RuntimeException(String.format("Could not set message property '%s' to this value: %s",
entry.getKey(),
- entry.getValue().toString()), e);
+ String.valueOf(entry.getValue())), e);
}
}
}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/d3ca1343/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/MessageVerifier.java
----------------------------------------------------------------------
diff --git a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/MessageVerifier.java b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/MessageVerifier.java
index 079c893..45f4abc 100644
--- a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/MessageVerifier.java
+++ b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/MessageVerifier.java
@@ -23,9 +23,11 @@ package org.apache.qpid.systests.end_to_end_conversion.client;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collection;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -220,26 +222,21 @@ public class MessageVerifier
final T expectedValue,
final S actualValue)
{
- final String failureTemplate = "%s: expected <%s>, actual <%s>";
- final String typeFailureTemplate = "%s: expected type <%s>, actual type <%s>";
- final String arraySizeFailureTemplate = "%s: expected array of length <%d>, actual length <%d> ('%s' vs '%s')";
- final String arrayFailureTemplate = "%s: arrays do not match ('%s' vs '%s')";
- final String subclassFailureTemplate = "%s: expected subclass of <%s>, actual <%s>";
if (expectedValue == null && actualValue == null)
{
return;
}
else if (expectedValue == null && actualValue != null)
{
- throw new VerificationException(String.format(failureTemplate, failureMessage, null, actualValue));
+ throw new VerificationException(String.format("%s: expected <%s>, actual <%s>", failureMessage, null, actualValue));
}
else if (expectedValue != null && actualValue == null)
{
- throw new VerificationException(String.format(failureTemplate, failureMessage, expectedValue, null));
+ throw new VerificationException(String.format("%s: expected <%s>, actual <%s>", failureMessage, expectedValue, null));
}
else if (expectedValue.getClass() != actualValue.getClass())
{
- throw new VerificationException(String.format(typeFailureTemplate,
+ throw new VerificationException(String.format("%s: expected type <%s>, actual type <%s>",
failureMessage,
expectedValue.getClass(),
actualValue.getClass()));
@@ -250,7 +247,7 @@ public class MessageVerifier
{
if (!((Class<?>) expectedValue).isAssignableFrom(((Class<?>) actualValue)))
{
- throw new VerificationException(String.format(subclassFailureTemplate,
+ throw new VerificationException(String.format("%s: expected subclass of <%s>, actual <%s>",
failureMessage,
((Class<?>) expectedValue).getName(),
((Class<?>) actualValue).getName()));
@@ -272,26 +269,81 @@ public class MessageVerifier
}
if (expectedValueAsBytes.length != actualValueAsBytes.length)
{
- throw new VerificationException(String.format(arraySizeFailureTemplate,
- failureMessage,
- expectedValueAsBytes.length,
- actualValueAsBytes.length,
- expectedValueAsString,
- actualValueAsString));
+ throw new VerificationException(String.format(
+ "%s: expected array of length <%d>, actual length <%d> ('%s' vs '%s')",
+ failureMessage,
+ expectedValueAsBytes.length,
+ actualValueAsBytes.length,
+ expectedValueAsString,
+ actualValueAsString));
}
if (!Arrays.equals(expectedValueAsBytes, actualValueAsBytes))
{
- throw new VerificationException(String.format(arrayFailureTemplate,
+ throw new VerificationException(String.format("%s: arrays do not match ('%s' vs '%s')",
failureMessage,
expectedValueAsString,
actualValueAsString));
}
}
+ else if (expectedValue instanceof Map)
+ {
+ if (!(actualValue instanceof Map))
+ {
+ throw new VerificationException(String.format("%s: expected type <Map>, actual <%s>",
+ failureMessage,
+ actualValue.getClass()));
+ }
+ Map<String, Object> actualValueAsMap = (Map<String, Object>) actualValue;
+ for (Map.Entry<String, Object> entry : ((Map<String, Object>) expectedValue).entrySet())
+ {
+ if (!actualValueAsMap.containsKey(entry.getKey()))
+ {
+ throw new VerificationException(String.format("%s: Map does not contain expected key <%s>",
+ failureMessage,
+ entry.getKey()));
+ }
+ else
+ {
+ verifyEquals(String.format("%s: MapVerification for key '%s' failed",
+ failureMessage,
+ entry.getKey()),
+ entry.getValue(),
+ actualValueAsMap.get(entry.getKey()));
+ }
+ }
+ }
+ else if (expectedValue instanceof Collection)
+ {
+ if (!(actualValue instanceof Collection))
+ {
+ throw new VerificationException(String.format("%s: expected type <Collection>, actual type <%s>",
+ failureMessage,
+ actualValue.getClass()));
+ }
+ Collection<Object> actualValueAsCollection = (Collection<Object>) actualValue;
+ final Collection expectedValueAsCollection = (Collection) expectedValue;
+ if (expectedValueAsCollection.size() != actualValueAsCollection.size())
+ {
+ throw new VerificationException(String.format("%s: expected Collection of size <%s>, actual size <%s>",
+ failureMessage,
+ expectedValueAsCollection.size(),
+ actualValueAsCollection.size()));
+ }
+ final Iterator<Object> actualValueIterator = actualValueAsCollection.iterator();
+ int index = 0;
+ for (Object entry : expectedValueAsCollection)
+ {
+ verifyEquals(String.format("%s: CollectionVerification for index %d failed", failureMessage, index),
+ entry,
+ actualValueIterator.next());
+ index++;
+ }
+ }
else
{
if (!expectedValue.equals(actualValue))
{
- throw new VerificationException(String.format(failureTemplate,
+ throw new VerificationException(String.format("%s: expected <%s>, actual <%s>",
failureMessage,
expectedValue,
actualValue));
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/d3ca1343/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/MessagingInstruction.java
----------------------------------------------------------------------
diff --git a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/MessagingInstruction.java b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/MessagingInstruction.java
index 2cd555e..4083dd7 100644
--- a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/MessagingInstruction.java
+++ b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/MessagingInstruction.java
@@ -52,10 +52,22 @@ public abstract class MessagingInstruction implements ClientInstruction
public static class PublishMessage extends MessagingInstruction
{
+ private String _consumeReplyToJndiName;
+
public PublishMessage(final String destinationJndiName, final MessageDescription messageDescription)
{
super(destinationJndiName, messageDescription);
}
+
+ public String getConsumeReplyToJndiName()
+ {
+ return _consumeReplyToJndiName;
+ }
+
+ public void setConsumeReplyToJndiName(final String consumeReplyToJndiName)
+ {
+ _consumeReplyToJndiName = consumeReplyToJndiName;
+ }
}
public static class ReceiveMessage extends MessagingInstruction
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/d3ca1343/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/SerializableTestClass.java
----------------------------------------------------------------------
diff --git a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/SerializableTestClass.java b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/SerializableTestClass.java
new file mode 100644
index 0000000..8c7fa65
--- /dev/null
+++ b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/SerializableTestClass.java
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.qpid.systests.end_to_end_conversion.client;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class SerializableTestClass implements Serializable
+{
+ private final HashMap<String, String> _mapField;
+ private final ArrayList<Integer> _listField;
+
+ public SerializableTestClass(final Map<String, String> map,
+ final List<Integer> list)
+ {
+ _mapField = new HashMap<>(map);
+ _listField = new ArrayList<>(list);
+ }
+
+ public HashMap<String, String> getMapField()
+ {
+ return _mapField;
+ }
+
+ public ArrayList<Integer> getListField()
+ {
+ return _listField;
+ }
+
+ @Override
+ public boolean equals(final Object o)
+ {
+ if (this == o)
+ {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass())
+ {
+ return false;
+ }
+
+ final SerializableTestClass that = (SerializableTestClass) o;
+
+ if (_mapField != null ? !_mapField.equals(that._mapField) : that._mapField != null)
+ {
+ return false;
+ }
+ return _listField != null ? _listField.equals(that._listField) : that._listField == null;
+ }
+
+ @Override
+ public int hashCode()
+ {
+ int result = _mapField != null ? _mapField.hashCode() : 0;
+ result = 31 * result + (_listField != null ? _listField.hashCode() : 0);
+ return result;
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/d3ca1343/systests/end-to-end-conversion-tests/src/test/java/org/apache/qpid/systests/end_to_end_conversion/SimpleConversionTest.java
----------------------------------------------------------------------
diff --git a/systests/end-to-end-conversion-tests/src/test/java/org/apache/qpid/systests/end_to_end_conversion/SimpleConversionTest.java b/systests/end-to-end-conversion-tests/src/test/java/org/apache/qpid/systests/end_to_end_conversion/SimpleConversionTest.java
index 4a562d6..c53d4a3 100644
--- a/systests/end-to-end-conversion-tests/src/test/java/org/apache/qpid/systests/end_to_end_conversion/SimpleConversionTest.java
+++ b/systests/end-to-end-conversion-tests/src/test/java/org/apache/qpid/systests/end_to_end_conversion/SimpleConversionTest.java
@@ -20,14 +20,17 @@
package org.apache.qpid.systests.end_to_end_conversion;
+import static org.junit.Assume.assumeFalse;
import static org.junit.Assume.assumeTrue;
+import java.util.Collections;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
+import com.google.common.collect.Lists;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import org.junit.Before;
@@ -36,18 +39,14 @@ import org.junit.Test;
import org.apache.qpid.server.model.Protocol;
import org.apache.qpid.systests.end_to_end_conversion.client.ClientInstruction;
import org.apache.qpid.systests.end_to_end_conversion.client.MessageDescription;
+import org.apache.qpid.systests.end_to_end_conversion.client.SerializableTestClass;
import org.apache.qpid.systests.end_to_end_conversion.client.VerificationException;
public class SimpleConversionTest extends EndToEndConversionTestBase
{
private static final long TEST_TIMEOUT = 30000L;
- public static final String QUEUE_NAME = "testQueue";
- public static final String REPLY_QUEUE_NAME = "testReplyQueue";
+ private static final String QUEUE_NAME = "testQueue";
private static final String QUEUE_JNDI_NAME = "queue";
- private static final String REPLY_QUEUE_JNDI_NAME = "replyQueue";
- private static final String REPLY_TOPIC_NAME = "amq.topic/topic";
- private static final String REPLY_TOPIC_JNDI_NAME = "replyTopic";
-
private HashMap<String, String> _defaultDestinations;
@@ -55,18 +54,17 @@ public class SimpleConversionTest extends EndToEndConversionTestBase
public void setup()
{
getBrokerAdmin().createQueue(QUEUE_NAME);
- getBrokerAdmin().createQueue(REPLY_QUEUE_NAME);
_defaultDestinations = new HashMap<>();
_defaultDestinations.put("queue." + QUEUE_JNDI_NAME, QUEUE_NAME);
- _defaultDestinations.put("queue." + REPLY_QUEUE_JNDI_NAME, REPLY_QUEUE_NAME);
- _defaultDestinations.put("topic." + REPLY_TOPIC_JNDI_NAME, REPLY_TOPIC_NAME);
-/*
- destinations.put("topic.topic", "testTopic");
- destinations.put("topic.replyTopic", "testReplyTopic");
- destinations.put("destination.destination", "testDestination");
- destinations.put("destination.replyDestination", "testReplyDestination");
-*/
+ }
+
+ @Test
+ public void message() throws Exception
+ {
+ final MessageDescription messageDescription = new MessageDescription();
+ messageDescription.setMessageType(MessageDescription.MessageType.MESSAGE);
+ performSimpleTest(messageDescription);
}
@Test
@@ -90,20 +88,57 @@ public class SimpleConversionTest extends EndToEndConversionTestBase
}
@Test
+ public void streamMessage() throws Exception
+ {
+ final MessageDescription messageDescription = new MessageDescription();
+ messageDescription.setMessageType(MessageDescription.MessageType.STREAM_MESSAGE);
+ messageDescription.setContent(Lists.newArrayList(true,
+ (byte) -7,
+ (short) 259,
+ Integer.MAX_VALUE,
+ Long.MAX_VALUE,
+ 37.5f,
+ 38.5,
+ "testString",
+ null,
+ new byte[]{0x24, 0x00, (byte) 0xFF}));
+
+ performSimpleTest(messageDescription);
+ }
+
+ @Test
public void mapMessage() throws Exception
{
final MessageDescription messageDescription = new MessageDescription();
messageDescription.setMessageType(MessageDescription.MessageType.MAP_MESSAGE);
HashMap<String, Object> content = new HashMap<>();
- content.put("int", 42);
content.put("boolean", true);
+ content.put("byte", (byte) -7);
+ content.put("short", (short) 259);
+ content.put("int", 42);
+ content.put("long", Long.MAX_VALUE);
+ content.put("float", 37.5f);
+ content.put("double", 37.5);
content.put("string", "testString");
+ content.put("byteArray", new byte[] {0x24 , 0x00, (byte) 0xFF});
+
messageDescription.setContent(content);
performSimpleTest(messageDescription);
}
@Test
+ public void objectMessage() throws Exception
+ {
+ final MessageDescription messageDescription = new MessageDescription();
+ messageDescription.setMessageType(MessageDescription.MessageType.OBJECT_MESSAGE);
+ messageDescription.setContent(new SerializableTestClass(Collections.singletonMap("testKey", "testValue"),
+ Collections.singletonList(42)));
+
+ performSimpleTest(messageDescription);
+ }
+
+ @Test
public void type() throws Exception
{
final String type = "testType";
@@ -142,18 +177,26 @@ public class SimpleConversionTest extends EndToEndConversionTestBase
public void property() throws Exception
{
final MessageDescription messageDescription = new MessageDescription();
- messageDescription.setProperty("intProperty", 42);
- messageDescription.setProperty("stringProperty", "foobar");
messageDescription.setProperty("booleanProperty", true);
+ messageDescription.setProperty("byteProperty", (byte) -7);
+ messageDescription.setProperty("shortProperty", (short) 259);
+ messageDescription.setProperty("intProperty", 42);
+ messageDescription.setProperty("longProperty", Long.MAX_VALUE);
+ messageDescription.setProperty("floatProperty", 37.5f);
messageDescription.setProperty("doubleProperty", 37.5);
+ messageDescription.setProperty("stringProperty", "foobar");
performSimpleTest(messageDescription);
}
@Test
- public void replyTo() throws Exception
+ public void replyToStaticQueue() throws Exception
{
- performReplyToTest(REPLY_QUEUE_JNDI_NAME);
+ final String replyQueueName = "testReplyQueue";
+ final String replyQueueJndiName = "replyQueue";
+ _defaultDestinations.put("queue." + replyQueueJndiName, replyQueueName);
+ getBrokerAdmin().createQueue(replyQueueName);
+ performReplyToTest(replyQueueJndiName);
}
@Test
@@ -163,12 +206,70 @@ public class SimpleConversionTest extends EndToEndConversionTestBase
}
@Test
- public void replyToTopic() throws Exception
+ public void replyToAmqp10Topic() throws Exception
+ {
+ assumeTrue("This test is for AMQP 1.0 publisher",
+ EnumSet.of(Protocol.AMQP_1_0).contains(getPublisherProtocolVersion()));
+
+ final String replyTopicJndiName = "replyTopic";
+ _defaultDestinations.put("topic." + replyTopicJndiName, "amq.topic/topic");
+ performReplyToTest(replyTopicJndiName);
+ }
+
+ @Test
+ public void replyToAmqp0xTopic() throws Exception
+ {
+ assumeFalse("This test is for AMQP 0-x publisher",
+ EnumSet.of(Protocol.AMQP_1_0).contains(getPublisherProtocolVersion()));
+
+ String jndiName = "testTopic";
+ _defaultDestinations.put("topic." + jndiName, "myTopic");
+ performReplyToTest(jndiName);
+ }
+
+ @Test
+ public void replyToBURLDestination() throws Exception
+ {
+ assumeFalse("This test is for AMQP 0-x publisher",
+ EnumSet.of(Protocol.AMQP_1_0).contains(getPublisherProtocolVersion()));
+
+ String jndiName = "testDestination";
+ String testDestination = "myQueue";
+ _defaultDestinations.put("destination." + jndiName,
+ String.format("BURL:direct://amq.direct//%s?routingkey='%s'", testDestination, testDestination));
+
+ getBrokerAdmin().createQueue(testDestination);
+
+ performReplyToTest(jndiName);
+ }
+
+ @Test
+ public void replyToAddressDestination() throws Exception
+ {
+ assumeFalse("This test is for AMQP 0-x publisher",
+ EnumSet.of(Protocol.AMQP_1_0).contains(getPublisherProtocolVersion()));
+
+ assumeTrue("QPID-7902: setJMSReplyTo for address based destination is broken on client side for 0-8...0-9-1",
+ EnumSet.of(Protocol.AMQP_0_10).contains(getPublisherProtocolVersion()));
+
+ String replyToJndiName = "replyToJndiName";
+ String consumeReplyToJndiName = "consumeReplyToJndiName";
+ String testDestination = "myQueue";
+ _defaultDestinations.put("destination." + replyToJndiName, "ADDR: amq.fanout/testReplyToQueue");
+ _defaultDestinations.put("destination." + consumeReplyToJndiName,
+ "ADDR: testReplyToQueue; {create:always, node: {type: queue, x-bindings:[{exchange: 'amq.fanout', key: testReplyToQueue}]}}");
+
+ getBrokerAdmin().createQueue(testDestination);
+
+ performReplyToTest(replyToJndiName, consumeReplyToJndiName);
+ }
+
+ private void performReplyToTest(final String jndiName) throws Exception
{
- performReplyToTest(REPLY_TOPIC_JNDI_NAME);
+ performReplyToTest(jndiName, null);
}
- public void performReplyToTest(final String temporaryQueueJndiName) throws Exception
+ private void performReplyToTest(final String replyToJndiName, final String consumeReplyToJndiName) throws Exception
{
assumeTrue("This test is known to fail for pre 0-10 subscribers (QPID-7898)",
EnumSet.of(Protocol.AMQP_0_10, Protocol.AMQP_1_0).contains(getSubscriberProtocolVersion()));
@@ -179,8 +280,8 @@ public class SimpleConversionTest extends EndToEndConversionTestBase
final List<ClientInstruction>
publisherInstructions = new ClientInstructionBuilder().configureDestinations(_defaultDestinations)
.publishMessage(destinationJndiName)
- .withReplyToJndiName(
- temporaryQueueJndiName)
+ .withReplyToJndiName(replyToJndiName)
+ .withConsumeReplyToJndiName(consumeReplyToJndiName)
.withHeader(MessageDescription.MessageHeader.CORRELATION_ID,
correlationId)
.build();
@@ -192,7 +293,7 @@ public class SimpleConversionTest extends EndToEndConversionTestBase
performTest(publisherInstructions, subscriberInstructions);
}
- public void performSimpleTest(final MessageDescription messageDescription) throws Exception
+ private void performSimpleTest(final MessageDescription messageDescription) throws Exception
{
final String destinationJndiName = QUEUE_JNDI_NAME;
final List<ClientInstruction> publisherInstructions =
@@ -206,7 +307,7 @@ public class SimpleConversionTest extends EndToEndConversionTestBase
performTest(publisherInstructions,subscriberInstructions);
}
- public void performTest(final List<ClientInstruction> publisherInstructions,
+ private void performTest(final List<ClientInstruction> publisherInstructions,
final List<ClientInstruction> subscriberInstructions) throws Exception
{
final ListenableFuture<?> publisherFuture = runPublisher(publisherInstructions);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org