Repository: qpid-jms Updated Branches: refs/heads/master 1c3ff1cbb -> 4550dac6c
QPIDJMS-207 Add additional test coverage, update ConnectionMetaData Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/fd2bc183 Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/fd2bc183 Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/fd2bc183 Branch: refs/heads/master Commit: fd2bc18322b388dd38bb53a526a01ce3d7fcf149 Parents: 1c3ff1c Author: Timothy Bish <tabish...@gmail.com> Authored: Tue Sep 20 14:14:26 2016 -0400 Committer: Timothy Bish <tabish...@gmail.com> Committed: Tue Sep 20 14:17:14 2016 -0400 ---------------------------------------------------------------------- .../apache/qpid/jms/JmsConnectionMetaData.java | 6 +-- .../qpid/jms/JmsConnectionFactoryTest.java | 37 +++++++++++++ .../org/apache/qpid/jms/JmsConnectionTest.java | 31 +++++++++++ .../qpid/jms/consumer/JmsQueueBrowserTest.java | 16 ++++++ .../apache/qpid/jms/session/JmsSessionTest.java | 57 +++++++++++++++++++- 5 files changed, 143 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/fd2bc183/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnectionMetaData.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnectionMetaData.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnectionMetaData.java index 1fc940d..7fa79f6 100644 --- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnectionMetaData.java +++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnectionMetaData.java @@ -40,7 +40,7 @@ public final class JmsConnectionMetaData implements ConnectionMetaData { */ @Override public String getJMSVersion() { - return "1.1"; + return "2.0"; } /** @@ -50,7 +50,7 @@ public final class JmsConnectionMetaData implements ConnectionMetaData { */ @Override public int getJMSMajorVersion() { - return 1; + return 2; } /** @@ -60,7 +60,7 @@ public final class JmsConnectionMetaData implements ConnectionMetaData { */ @Override public int getJMSMinorVersion() { - return 1; + return 0; } /** http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/fd2bc183/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsConnectionFactoryTest.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsConnectionFactoryTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsConnectionFactoryTest.java index ea8c867..8184acb 100644 --- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsConnectionFactoryTest.java +++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsConnectionFactoryTest.java @@ -36,6 +36,7 @@ import java.util.concurrent.TimeUnit; import javax.jms.Connection; import javax.jms.ExceptionListener; +import javax.jms.JMSContext; import javax.jms.JMSException; import org.apache.qpid.jms.policy.JmsDefaultDeserializationPolicy; @@ -756,4 +757,40 @@ public class JmsConnectionFactoryTest extends QpidJmsTestCase { assertTrue(connection.getDeserializationPolicy() instanceof SerializationTestSupport.TestJmsDeserializationPolicy); } + + @Test + public void testCreateContext() { + JmsConnectionFactory factory = new JmsConnectionFactory("mock://127.0.0.1:5672"); + + JMSContext context = factory.createContext(); + assertNotNull(context); + assertEquals(JMSContext.AUTO_ACKNOWLEDGE, context.getSessionMode()); + } + + @Test + public void testCreateContextWithUserAndPassword() { + JmsConnectionFactory factory = new JmsConnectionFactory("mock://127.0.0.1:5672"); + + JMSContext context = factory.createContext(USER, PASSWORD); + assertNotNull(context); + assertEquals(JMSContext.AUTO_ACKNOWLEDGE, context.getSessionMode()); + } + + @Test + public void testCreateContextWithUserAndPasswordAndSessionMode() { + JmsConnectionFactory factory = new JmsConnectionFactory("mock://127.0.0.1:5672"); + + JMSContext context = factory.createContext(USER, PASSWORD, JMSContext.CLIENT_ACKNOWLEDGE); + assertNotNull(context); + assertEquals(JMSContext.CLIENT_ACKNOWLEDGE, context.getSessionMode()); + } + + @Test + public void testCreateContextWithSessionMode() { + JmsConnectionFactory factory = new JmsConnectionFactory("mock://127.0.0.1:5672"); + + JMSContext context = factory.createContext(JMSContext.CLIENT_ACKNOWLEDGE); + assertNotNull(context); + assertEquals(JMSContext.CLIENT_ACKNOWLEDGE, context.getSessionMode()); + } } http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/fd2bc183/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsConnectionTest.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsConnectionTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsConnectionTest.java index 329b541..412ee73 100644 --- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsConnectionTest.java +++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsConnectionTest.java @@ -27,6 +27,7 @@ import static org.junit.Assert.fail; import java.io.IOException; import java.net.URI; +import javax.jms.ConnectionMetaData; import javax.jms.ExceptionListener; import javax.jms.IllegalStateException; import javax.jms.InvalidClientIDException; @@ -36,6 +37,7 @@ import javax.jms.TemporaryQueue; import javax.jms.TemporaryTopic; import org.apache.qpid.jms.policy.JmsDefaultPrefetchPolicy; +import org.apache.qpid.jms.provider.ProviderConstants.ACK_TYPE; import org.apache.qpid.jms.provider.mock.MockProvider; import org.apache.qpid.jms.provider.mock.MockProviderFactory; import org.apache.qpid.jms.util.IdGenerator; @@ -266,6 +268,35 @@ public class JmsConnectionTest { } } + @Test(timeout=30000) + public void testConnectionCreatedSessionRespectsAcknowledgementMode() throws Exception { + connection = new JmsConnection("ID:TEST:1", provider, clientIdGenerator); + connection.start(); + + JmsSession session = (JmsSession) connection.createSession(Session.SESSION_TRANSACTED); + try { + session.acknowledge(ACK_TYPE.ACCEPTED); + fail("Should be in TX mode and not allow explicit ACK."); + } catch (IllegalStateException ise) { + } + } + + @Test(timeout=30000) + public void testConnectionMetaData() throws Exception { + connection = new JmsConnection("ID:TEST:1", provider, clientIdGenerator); + + ConnectionMetaData metaData = connection.getMetaData(); + + assertNotNull(metaData); + assertEquals(2, metaData.getJMSMajorVersion()); + assertEquals(0, metaData.getJMSMinorVersion()); + assertEquals("2.0", metaData.getJMSVersion()); + assertNotNull(metaData.getJMSXPropertyNames()); + + assertNotNull(metaData.getProviderVersion()); + assertNotNull(metaData.getJMSProviderName()); + } + //----- Currently these are unimplemented, these will fail after that ----// @Test(timeout=30000, expected=JMSException.class) http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/fd2bc183/qpid-jms-client/src/test/java/org/apache/qpid/jms/consumer/JmsQueueBrowserTest.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/consumer/JmsQueueBrowserTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/consumer/JmsQueueBrowserTest.java index c16a0b7..9dee268 100644 --- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/consumer/JmsQueueBrowserTest.java +++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/consumer/JmsQueueBrowserTest.java @@ -17,8 +17,12 @@ package org.apache.qpid.jms.consumer; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; +import java.util.Enumeration; + +import javax.jms.Message; import javax.jms.Queue; import javax.jms.QueueBrowser; import javax.jms.Session; @@ -59,4 +63,16 @@ public class JmsQueueBrowserTest extends JmsConnectionTestSupport { browser.close(); browser.close(); // Should not throw on multiple close. } + + @Test(timeout = 30000) + public void testHasMoreElementsOnClosedBrowser() throws Exception { + browser = session.createBrowser(queue); + + @SuppressWarnings("unchecked") + Enumeration<Message> browse = browser.getEnumeration(); + + assertFalse(browse.hasMoreElements()); + browser.close(); + assertFalse(browse.hasMoreElements()); + } } http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/fd2bc183/qpid-jms-client/src/test/java/org/apache/qpid/jms/session/JmsSessionTest.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/session/JmsSessionTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/session/JmsSessionTest.java index c4f78d4..6cbc308 100644 --- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/session/JmsSessionTest.java +++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/session/JmsSessionTest.java @@ -284,7 +284,7 @@ public class JmsSessionTest extends JmsConnectionTestSupport { } catch (InvalidDestinationException idex) {} } - @Test//(timeout = 10000) + @Test(timeout = 10000) public void testCannotCreateConsumerOnDeletedTemporaryDestination() throws JMSException { JmsSession session = (JmsSession) connection.createSession(false, Session.AUTO_ACKNOWLEDGE); TemporaryQueue tempQueue = session.createTemporaryQueue(); @@ -303,4 +303,59 @@ public class JmsSessionTest extends JmsConnectionTestSupport { fail("Should not be able to send to this temporary destination"); } catch (IllegalStateException ise) {} } + + @Test(timeout = 10000) + public void testSessionRunFailsWhenSessionIsClosed() throws Exception { + JmsSession session = (JmsSession) connection.createSession(false, Session.AUTO_ACKNOWLEDGE); + + try { + session.run(); + fail("Not implemented"); + } catch (UnsupportedOperationException usoe) {} + + session.close(); + + try { + session.run(); + fail("Session is closed."); + } catch (RuntimeException re) {} + } + + //----- Not yet implemented, should all be cleared on implementation -----// + + @Test(timeout = 10000) + public void testCreateSharedConsumer() throws Exception { + JmsSession session = (JmsSession) connection.createSession(false, Session.AUTO_ACKNOWLEDGE); + try { + session.createSharedConsumer(session.createTopic("test"), "subscription"); + fail("Should fail until implemented."); + } catch (JMSException ex) {} + } + + @Test(timeout = 10000) + public void testCreateSharedConsumerWithSelector() throws Exception { + JmsSession session = (JmsSession) connection.createSession(false, Session.AUTO_ACKNOWLEDGE); + try { + session.createSharedConsumer(session.createTopic("test"), "subscription", "a = b"); + fail("Should fail until implemented."); + } catch (JMSException ex) {} + } + + @Test(timeout = 10000) + public void testCreateSharedDurableConsumer() throws Exception { + JmsSession session = (JmsSession) connection.createSession(false, Session.AUTO_ACKNOWLEDGE); + try { + session.createSharedDurableConsumer(session.createTopic("test"), "subscription"); + fail("Should fail until implemented."); + } catch (JMSException ex) {} + } + + @Test(timeout = 10000) + public void testCreateSharedDurableConsumerWithSelector() throws Exception { + JmsSession session = (JmsSession) connection.createSession(false, Session.AUTO_ACKNOWLEDGE); + try { + session.createSharedDurableConsumer(session.createTopic("test"), "subscription", "a = b"); + fail("Should fail until implemented."); + } catch (JMSException ex) {} + } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org