add support to test peer for refusing producer links
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/da948845 Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/da948845 Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/da948845 Branch: refs/heads/master Commit: da948845b4a397462df80b9d1c4c0e1169b76f3f Parents: f5c1fbd Author: Robert Gemmell <[email protected]> Authored: Mon Nov 10 15:04:34 2014 +0000 Committer: Robert Gemmell <[email protected]> Committed: Mon Nov 10 17:48:37 2014 +0000 ---------------------------------------------------------------------- .../jms/integration/SessionIntegrationTest.java | 7 ++--- .../qpid/jms/test/testpeer/TestAmqpPeer.java | 28 +++++++++++++++++--- 2 files changed, 26 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/da948845/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 4d180c6..604a665 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,7 +18,6 @@ */ 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; @@ -36,8 +35,6 @@ import javax.jms.TopicSubscriber; import org.apache.qpid.jms.test.QpidJmsTestCase; import org.apache.qpid.jms.test.testpeer.TestAmqpPeer; -import org.apache.qpid.jms.test.testpeer.basictypes.TerminusDurability; -import org.apache.qpid.jms.test.testpeer.basictypes.TerminusExpiryPolicy; 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; @@ -140,7 +137,7 @@ public class SessionIntegrationTest extends QpidJmsTestCase { } @Test(timeout = 5000) - public void testCreateAnonymousProducerWhenAnonymousRelaySupported() throws Exception { + public void testCreateAnonymousProducerWhenAnonymousRelayNodeIsSupported() throws Exception { try (TestAmqpPeer testPeer = new TestAmqpPeer(IntegrationTestFixture.PORT);) { Connection connection = testFixture.establishConnecton(testPeer); connection.start(); @@ -157,7 +154,7 @@ public class SessionIntegrationTest extends QpidJmsTestCase { targetMatcher.withDynamic(nullValue());//default = false targetMatcher.withDurable(nullValue());//default = none/0 - testPeer.expectSenderAttach(targetMatcher); + testPeer.expectSenderAttach(targetMatcher, false); //Create an anonymous producer MessageProducer producer = session.createProducer(null); http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/da948845/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java index bea5d90..e56c32b 100644 --- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java +++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java @@ -458,10 +458,10 @@ public class TestAmqpPeer implements AutoCloseable public void expectSenderAttach() { - expectSenderAttach(notNullValue()); + expectSenderAttach(notNullValue(), false); } - public void expectSenderAttach(final Matcher<?> targetMatcher) + public void expectSenderAttach(final Matcher<?> targetMatcher, final boolean refuseLink) { final AttachMatcher attachMatcher = new AttachMatcher() .withName(notNullValue()) @@ -489,7 +489,11 @@ public class TestAmqpPeer implements AutoCloseable attachResponseSender.setChannel(attachMatcher.getActualChannel()); attachResponse.setName(attachMatcher.getReceivedName()); attachResponse.setSource(attachMatcher.getReceivedSource()); - attachResponse.setTarget(attachMatcher.getReceivedTarget()); + if(refuseLink) { + attachResponse.setTarget(null); + } else { + attachResponse.setTarget(attachMatcher.getReceivedTarget()); + } } }); @@ -512,9 +516,25 @@ public class TestAmqpPeer implements AutoCloseable } }); + final DetachFrame detachResonse = new DetachFrame().setHandle( + linkHandle).setClosed(true); + // The response frame channel will be dynamically set based on the + // incoming frame. Using the -1 is an illegal placeholder. + final FrameSender detachResonseSender = new FrameSender(this, FrameType.AMQP, -1, detachResonse, null); + detachResonseSender.setValueProvider(new ValueProvider() { + @Override + public void setValues() { + detachResonseSender.setChannel(attachMatcher.getActualChannel()); + } + }); + CompositeAmqpPeerRunnable composite = new CompositeAmqpPeerRunnable(); composite.add(attachResponseSender); - composite.add(flowFrameSender); + if (refuseLink) { + composite.add(detachResonseSender); + } else { + composite.add(flowFrameSender); + } attachMatcher.onSuccess(composite); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
