Add getters and setters for the To and ReplyTo address values from the
underlying AMQP message to the message facade and use those in
destination helper.  Create a new test to start covering the variations
of things in AmqpDestinationHelper

Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/2943002c
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/2943002c
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/2943002c

Branch: refs/heads/master
Commit: 2943002c3046b871bd800efda5908663082115a1
Parents: 18adb4e
Author: Timothy Bish <[email protected]>
Authored: Wed Sep 24 18:06:51 2014 -0400
Committer: Timothy Bish <[email protected]>
Committed: Wed Sep 24 18:06:51 2014 -0400

----------------------------------------------------------------------
 .../amqp/message/AmqpDestinationHelper.java     |  8 ++--
 .../amqp/message/AmqpJmsMessageFacade.java      | 16 +++++++
 .../amqp/message/AmqpDestinationHelperTest.java | 50 ++++++++++++++++++++
 3 files changed, 70 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/2943002c/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpDestinationHelper.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpDestinationHelper.java
 
b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpDestinationHelper.java
index 3b84029..d84399d 100644
--- 
a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpDestinationHelper.java
+++ 
b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpDestinationHelper.java
@@ -73,7 +73,7 @@ public class AmqpDestinationHelper {
      */
 
     public JmsDestination getJmsDestination(AmqpJmsMessageFacade message, 
JmsDestination consumerDestination) {
-        String to = message.getAmqpMessage().getAddress();
+        String to = message.getToAddress();
         String toTypeString = (String) 
message.getAnnotation(TO_TYPE_MSG_ANNOTATION_SYMBOL_NAME);
         Set<String> typeSet = null;
 
@@ -85,7 +85,7 @@ public class AmqpDestinationHelper {
     }
 
     public JmsDestination getJmsReplyTo(AmqpJmsMessageFacade message, 
JmsDestination consumerDestination) {
-        String replyTo = message.getAmqpMessage().getReplyTo();
+        String replyTo = message.getReplyToAddress();
         String replyToTypeString = (String) 
message.getAnnotation(REPLY_TO_TYPE_MSG_ANNOTATION_SYMBOL_NAME);
         Set<String> typeSet = null;
 
@@ -142,7 +142,7 @@ public class AmqpDestinationHelper {
         String address = destination.getName();
         String typeString = toTypeAnnotation(destination);
 
-        message.getAmqpMessage().setAddress(address);
+        message.setToAddress(address);
 
         if (address == null || typeString == null) {
             message.removeAnnotation(TO_TYPE_MSG_ANNOTATION_SYMBOL_NAME);
@@ -155,7 +155,7 @@ public class AmqpDestinationHelper {
         String replyToAddress = destination.getName();
         String typeString = toTypeAnnotation(destination);
 
-        message.getAmqpMessage().setReplyTo(replyToAddress);
+        message.setReplyToAddress(replyToAddress);
 
         if (replyToAddress == null || typeString == null) {
             message.removeAnnotation(REPLY_TO_TYPE_MSG_ANNOTATION_SYMBOL_NAME);

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/2943002c/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacade.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacade.java
 
b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacade.java
index 0bb7fb7..d0ee5af 100644
--- 
a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacade.java
+++ 
b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacade.java
@@ -727,6 +727,22 @@ public class AmqpJmsMessageFacade implements 
JmsMessageFacade {
         message.setApplicationProperties(null);
     }
 
+    String getToAddress() {
+        return message.getAddress();
+    }
+
+    void setToAddress(String address) {
+        message.setAddress(address);
+    }
+
+    String getReplyToAddress() {
+        return message.getReplyTo();
+    }
+
+    void setReplyToAddress(String address) {
+        this.message.setReplyTo(address);
+    }
+
     private Long getAbsoluteExpiryTime() {
         Long result = null;
         if (message.getProperties() != null) {

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/2943002c/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpDestinationHelperTest.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpDestinationHelperTest.java
 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpDestinationHelperTest.java
new file mode 100644
index 0000000..d03765e
--- /dev/null
+++ 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpDestinationHelperTest.java
@@ -0,0 +1,50 @@
+/**
+ * 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.jms.provider.amqp.message;
+
+import static 
org.apache.qpid.jms.provider.amqp.message.AmqpDestinationHelper.QUEUE_ATTRIBUTES_STRING;
+import static 
org.apache.qpid.jms.provider.amqp.message.AmqpDestinationHelper.REPLY_TO_TYPE_MSG_ANNOTATION_SYMBOL_NAME;
+import static 
org.apache.qpid.jms.provider.amqp.message.AmqpDestinationHelper.TO_TYPE_MSG_ANNOTATION_SYMBOL_NAME;
+import static org.junit.Assert.assertNull;
+
+import org.junit.Test;
+import org.mockito.Mockito;
+
+public class AmqpDestinationHelperTest {
+
+    private final AmqpDestinationHelper helper = 
AmqpDestinationHelper.INSTANCE;
+
+    @Test
+    public void 
testGetJmsDestinationWithNullAddressAndNullConsumerDestReturnsNull() throws 
Exception {
+        AmqpJmsMessageFacade message = 
Mockito.mock(AmqpJmsMessageFacade.class);
+        Mockito.when(message.getToAddress()).thenReturn(null);
+        Mockito.when(message.getAnnotation(
+            
TO_TYPE_MSG_ANNOTATION_SYMBOL_NAME)).thenReturn(QUEUE_ATTRIBUTES_STRING);
+
+        assertNull(helper.getJmsDestination(message, null));
+    }
+
+    @Test
+    public void 
testGetJmsReplyToWithNullAddressAndNullConsumerDestReturnsNull() throws 
Exception {
+        AmqpJmsMessageFacade message = 
Mockito.mock(AmqpJmsMessageFacade.class);
+        Mockito.when(message.getToAddress()).thenReturn(null);
+        Mockito.when(message.getAnnotation(
+            
REPLY_TO_TYPE_MSG_ANNOTATION_SYMBOL_NAME)).thenReturn(QUEUE_ATTRIBUTES_STRING);
+
+        assertNull(helper.getJmsDestination(message, null));
+    }
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to