add test of behaviour when link is refused, i.e null source in attach response
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/923bbc7a Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/923bbc7a Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/923bbc7a Branch: refs/heads/master Commit: 923bbc7aa45c69ff89916d1ba2396db341dc983a Parents: f2b3a5d Author: Robert Gemmell <[email protected]> Authored: Mon Nov 10 15:24:56 2014 +0000 Committer: Robert Gemmell <[email protected]> Committed: Mon Nov 10 17:48:37 2014 +0000 ---------------------------------------------------------------------- .../jms/integration/SessionIntegrationTest.java | 36 ++++++++++++++++++++ 1 file changed, 36 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/923bbc7a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SessionIntegrationTest.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SessionIntegrationTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SessionIntegrationTest.java index 604a665..b469bdc 100644 --- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SessionIntegrationTest.java +++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SessionIntegrationTest.java @@ -18,13 +18,16 @@ */ package org.apache.qpid.jms.integration; +import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.nullValue; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import static org.junit.Assert.fail; import javax.jms.Connection; +import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageProducer; import javax.jms.Queue; @@ -39,6 +42,7 @@ import org.apache.qpid.jms.test.testpeer.matchers.TargetMatcher; import org.apache.qpid.jms.test.testpeer.matchers.sections.MessageAnnotationsSectionMatcher; import org.apache.qpid.jms.test.testpeer.matchers.sections.MessageHeaderSectionMatcher; import org.apache.qpid.jms.test.testpeer.matchers.sections.TransferPayloadCompositeMatcher; +import org.junit.Ignore; import org.junit.Test; public class SessionIntegrationTest extends QpidJmsTestCase { @@ -174,4 +178,36 @@ public class SessionIntegrationTest extends QpidJmsTestCase { testPeer.waitForAllHandlersToComplete(1000); } } + + @Test(timeout = 5000) + public void testCreateProducerFailsWhenLinkRefused() throws Exception { + try (TestAmqpPeer testPeer = new TestAmqpPeer(IntegrationTestFixture.PORT);) { + Connection connection = testFixture.establishConnecton(testPeer); + connection.start(); + + testPeer.expectBegin(true); + Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); + + String topicName = "myTopic"; + Topic dest = session.createTopic(topicName); + + //Expect a link to a topic node, which we will then refuse + TargetMatcher targetMatcher = new TargetMatcher(); + targetMatcher.withAddress(equalTo("topic://" + topicName)); //TODO: remove prefix + targetMatcher.withDynamic(nullValue());//default = false + targetMatcher.withDurable(nullValue());//default = none/0 + + testPeer.expectSenderAttach(targetMatcher, true); + + try { + //Create a producer, expect it to throw exception due to the link-refusal + session.createProducer(dest); + fail("Producer creation should have failed when link was refused"); + } catch(JMSException jmse) { + //Expected + } + + testPeer.waitForAllHandlersToComplete(1000); + } + } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
