You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2016/01/25 12:53:15 UTC

qpid-proton git commit: PROTON-1105: Enable EventImpl#getTransport() to succeed in returning a value in more situations.

Repository: qpid-proton
Updated Branches:
  refs/heads/master 7e03b1209 -> 490cc0d5b


PROTON-1105: Enable EventImpl#getTransport() to succeed in returning a value in more situations.

This closes #58


Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/490cc0d5
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/490cc0d5
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/490cc0d5

Branch: refs/heads/master
Commit: 490cc0d5b72b40c5727c9d1e5a0c246bae9403e7
Parents: 7e03b12
Author: Robert Gemmell <ro...@apache.org>
Authored: Mon Jan 25 11:48:51 2016 +0000
Committer: Robert Gemmell <ro...@apache.org>
Committed: Mon Jan 25 11:48:51 2016 +0000

----------------------------------------------------------------------
 .../qpid/proton/engine/impl/EventImpl.java      |  14 ++-
 .../qpid/proton/engine/impl/EventImplTest.java  | 119 +++++++++++++++++++
 2 files changed, 131 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/490cc0d5/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/EventImpl.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/EventImpl.java b/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/EventImpl.java
index 40f2669..3bcecb5 100644
--- a/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/EventImpl.java
+++ b/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/EventImpl.java
@@ -238,9 +238,19 @@ class EventImpl implements Event
         if (context instanceof Transport) {
             return (Transport) context;
         } else if (context instanceof Connection) {
-        	return ((Connection)context).getTransport();	
+            return ((Connection)context).getTransport();
         } else {
-            return null;
+            Session session = getSession();
+            if (session == null) {
+                return null;
+            }
+
+            Connection connection = session.getConnection();
+            if (connection == null) {
+                return null;
+            }
+
+            return connection.getTransport();
         }
     }
 

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/490cc0d5/proton-j/src/test/java/org/apache/qpid/proton/engine/impl/EventImplTest.java
----------------------------------------------------------------------
diff --git a/proton-j/src/test/java/org/apache/qpid/proton/engine/impl/EventImplTest.java b/proton-j/src/test/java/org/apache/qpid/proton/engine/impl/EventImplTest.java
new file mode 100644
index 0000000..e46f45c
--- /dev/null
+++ b/proton-j/src/test/java/org/apache/qpid/proton/engine/impl/EventImplTest.java
@@ -0,0 +1,119 @@
+/*
+ *
+ * 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.proton.engine.impl;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertSame;
+
+import org.apache.qpid.proton.engine.Connection;
+import org.apache.qpid.proton.engine.Delivery;
+import org.apache.qpid.proton.engine.Event;
+import org.apache.qpid.proton.engine.EventType;
+import org.apache.qpid.proton.engine.Link;
+import org.apache.qpid.proton.engine.Sender;
+import org.apache.qpid.proton.engine.Session;
+import org.apache.qpid.proton.engine.Transport;
+import org.junit.Test;
+
+public class EventImplTest
+{
+    @Test
+    public void testGetTransportWithConnectionContext()
+    {
+        Transport transport = Transport.Factory.create();
+        Connection connection = Connection.Factory.create();
+        transport.bind(connection);
+
+        EventImpl event = createEvent(connection, Event.Type.CONNECTION_BOUND);
+
+        assertNotNull("No transport returned", event.getTransport());
+        assertSame("Incorrect transport returned", transport, event.getTransport());
+    }
+
+    @Test
+    public void testGetTransportWithTransportContext()
+    {
+        Transport transport = Transport.Factory.create();
+        Connection connection = Connection.Factory.create();
+        transport.bind(connection);
+
+        EventImpl event = createEvent(transport, Event.Type.TRANSPORT);
+
+        assertNotNull("No transport returned", event.getTransport());
+        assertSame("Incorrect transport returned", transport, event.getTransport());
+    }
+
+    @Test
+    public void testGetTransportWithSessionContext()
+    {
+        Transport transport = Transport.Factory.create();
+        Connection connection = Connection.Factory.create();
+        transport.bind(connection);
+
+        Session session = connection.session();
+
+        EventImpl event = createEvent(session, Event.Type.SESSION_INIT);
+
+        assertNotNull("No transport returned", event.getTransport());
+        assertSame("Incorrect transport returned", transport, event.getTransport());
+    }
+
+    @Test
+    public void testGetTransportWithLinkContext()
+    {
+        Transport transport = Transport.Factory.create();
+        Connection connection = Connection.Factory.create();
+        transport.bind(connection);
+
+        Session session = connection.session();
+        Link link = session.receiver("myReceiver");
+
+        EventImpl event = createEvent(link, Event.Type.LINK_INIT);
+
+        assertNotNull("No transport returned", event.getTransport());
+        assertSame("Incorrect transport returned", transport, event.getTransport());
+    }
+
+    @Test
+    public void testGetTransportWithDeliveryContext()
+    {
+        Transport transport = Transport.Factory.create();
+        Connection connection = Connection.Factory.create();
+        transport.bind(connection);
+
+        Session session = connection.session();
+        Sender sender = session.sender("mySender");
+
+        Delivery delivery = sender.delivery("tag".getBytes());
+
+        EventImpl event = createEvent(delivery, Event.Type.DELIVERY);
+
+        assertNotNull("No transport returned", event.getTransport());
+        assertSame("Incorrect transport returned", transport, event.getTransport());
+    }
+
+    EventImpl createEvent(Object context, EventType type)
+    {
+        EventImpl event = new EventImpl();
+        event.init(type, context);
+        return event;
+    }
+}


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