You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2017/01/16 06:53:48 UTC

svn commit: r1778970 - in /qpid/java/trunk: systests/src/test/java/org/apache/qpid/systest/rest/PublishMessageRestTest.java test-profiles/Java10BrokenTestsExcludes

Author: kwall
Date: Mon Jan 16 06:53:48 2017
New Revision: 1778970

URL: http://svn.apache.org/viewvc?rev=1778970&view=rev
Log:
QPID-7546: Enable PublishMessageRestTest#testPublishMessageWithPropertiesAndHeaders for AMQP 1.0

Modified:
    qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/rest/PublishMessageRestTest.java
    qpid/java/trunk/test-profiles/Java10BrokenTestsExcludes

Modified: qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/rest/PublishMessageRestTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/rest/PublishMessageRestTest.java?rev=1778970&r1=1778969&r2=1778970&view=diff
==============================================================================
--- qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/rest/PublishMessageRestTest.java (original)
+++ qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/rest/PublishMessageRestTest.java Mon Jan 16 06:53:48 2017
@@ -19,18 +19,19 @@
  */
 package org.apache.qpid.systest.rest;
 
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 import java.util.concurrent.TimeUnit;
 
 import javax.jms.Connection;
 import javax.jms.Destination;
+import javax.jms.JMSException;
 import javax.jms.MapMessage;
 import javax.jms.Message;
 import javax.jms.MessageConsumer;
@@ -98,23 +99,15 @@ public class PublishMessageRestTest exte
         assertNotSame("Unexpected JMSTimestamp", 0, message.getJMSTimestamp());
 
         // remove any JMSX properties which may be added by the client library
-        ArrayList propertyNames = new ArrayList(Collections.list(message.getPropertyNames()));
-        Iterator iter = propertyNames.iterator();
-        while(iter.hasNext())
-        {
-            if(iter.next().toString().startsWith("JMSX"))
-            {
-                iter.remove();
-            }
-        }
-        assertTrue("Unexpected number of mesage properties: " + propertyNames, propertyNames.isEmpty());
+        List<String> applicationHeaders = getApplicationHeaders(message.getPropertyNames());
+        assertTrue("Unexpected number of message properties: " + applicationHeaders, applicationHeaders.isEmpty());
     }
 
     public void testPublishMessageWithPropertiesAndHeaders() throws Exception
     {
         final String messageId = "ID:" + UUID.randomUUID().toString();
         final long tomorrow = TimeUnit.DAYS.toMillis(1) + System.currentTimeMillis();
-        final Map<String, Object> headers =  new HashMap<>();
+        final Map<String, Object> headers = new HashMap<>();
         headers.put("stringprop", "mystring");
         headers.put("longstringprop", Strings.repeat("*", 256));
         headers.put("intprop", Integer.MIN_VALUE);
@@ -133,26 +126,21 @@ public class PublishMessageRestTest exte
         assertNotNull("Expected message not received", message);
         final String jmsMessageID = message.getJMSMessageID();
         assertEquals("Unexpected JMSMessageID", messageId, jmsMessageID);
-        assertEquals("Unexpected JMSExpiration", tomorrow, message.getJMSExpiration());
+        assertFalse("Unexpected JMSRedelivered", message.getJMSRedelivered());
+        // In AMQP 1.0 TTLs are compute relative to the message's arrival time at server.
+        assertTrue(String.format("Unexpected JMSExpiration expected %d actual %d", tomorrow, message.getJMSExpiration()),
+                   message.getJMSExpiration() >= tomorrow && message.getJMSExpiration() - tomorrow < 5000);
+
+        // remove any JMSX properties which may be added by the client library
+        List<String> applicationHeaders = getApplicationHeaders(message.getPropertyNames());
 
-        final Enumeration propertyEnumeration = message.getPropertyNames();
-        int count = 0;
-        while(propertyEnumeration.hasMoreElements())
+        for(String key : applicationHeaders)
         {
-            String key = (String) propertyEnumeration.nextElement();
-            assertEquals("Unexpected property value fo key : " + key, headers.get(key), message.getObjectProperty(key));
-            count++;
+            assertEquals("Unexpected property value fo key : " + key,
+                         headers.get(key),
+                         message.getObjectProperty(key));
         }
-        assertEquals("Unexpected number of properties", headers.size(), count);
-    }
-
-    private void expectPublishFailure(final Map<String, Object> headers, final int responseCode) throws IOException
-    {
-        final Map<String, Object> messageBody = Collections.<String, Object>singletonMap("headers", headers);
-
-        getRestTestHelper().submitRequest(_publishMessageOpUrl, "POST",
-                                          Collections.singletonMap("message", messageBody),
-                                          responseCode);
+        assertEquals("Unexpected number of properties", headers.size(), applicationHeaders.size());
     }
 
     public void testPublishStringMessage() throws Exception
@@ -217,4 +205,18 @@ public class PublishMessageRestTest exte
                    expectedMessageClass.isAssignableFrom(message.getClass()));
         return message;
     }
+
+    private List<String> getApplicationHeaders(final Enumeration propertyNames1) throws JMSException
+    {
+        List<String> copy = new ArrayList<>(Collections.list((Enumeration<String>) propertyNames1));
+        Iterator iter = copy.iterator();
+        while(iter.hasNext())
+        {
+            if(iter.next().toString().startsWith("JMSX"))
+            {
+                iter.remove();
+            }
+        }
+        return copy;
+    }
 }

Modified: qpid/java/trunk/test-profiles/Java10BrokenTestsExcludes
URL: http://svn.apache.org/viewvc/qpid/java/trunk/test-profiles/Java10BrokenTestsExcludes?rev=1778970&r1=1778969&r2=1778970&view=diff
==============================================================================
--- qpid/java/trunk/test-profiles/Java10BrokenTestsExcludes (original)
+++ qpid/java/trunk/test-profiles/Java10BrokenTestsExcludes Mon Jan 16 06:53:48 2017
@@ -32,11 +32,6 @@ org.apache.qpid.test.unit.transacted.Tra
 org.apache.qpid.test.unit.topic.TopicSessionTest#testSubscriptionNameReuseForDifferentTopicSingleConnection
 org.apache.qpid.test.unit.topic.TopicSessionTest#testSubscriptionNameReuseForDifferentTopicTwoConnections
 
-
-// somewhere in the process, the expiration time appears to be being modified (or we are only using relative expiration)
-org.apache.qpid.systest.rest.PublishMessageRestTest#testPublishMessageWithPropertiesAndHeaders
-
-
 // the received message is being treated as an object message (because it lacks the necessary JMS annotation?)
 org.apache.qpid.systest.rest.PublishMessageRestTest#testPublishMapMessage
 



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org