You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2019/08/28 06:38:04 UTC

[qpid-broker-j] branch master updated (1d8e033 -> 13de81f)

This is an automated email from the ASF dual-hosted git repository.

orudyy pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/qpid-broker-j.git.


    from 1d8e033  QPID-8349: [Tests][AMQP 1.0] Add ability to close connections without asserting peer responses
     new 757ba6d  QPID-8349: [Tests][AMQP 1.0] Add ability into ExistingQueueAdmin to drain queues using 'settlled' or 'unsettled' sender setlle modes
     new 7718d33  QPID-8349: [Tests][AMQP 1.0] Fix setting of maximum frame size
     new 90881f0  QPID-8349: [Tests][AMQP 1.0] Set transfer format
     new 38f7375  QPID-8349: [Tests][AMQP 1.0] Assert coordinator attach responses
     new 64e57a2  QPID-8350: [Tests][AMQP 1.0] Improve various protocol tests
     new 4e98249  QPID-8350: [Tests][AMQP 1.0] Improve error handling in tests
     new 0578ed8  QPID-8349: [Tests][AMQP 1.0] Move open negotiation into Interaction
     new 13de81f  QPID-8349: [Tests][AMQP 1.0] Run tests with SASL authentication when anonymous access is not supported

The 8 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../tests/protocol/v1_0/ExistingQueueAdmin.java    | 114 ++++++------
 .../qpid/tests/protocol/v1_0/FrameDecoder.java     |   2 +-
 .../qpid/tests/protocol/v1_0/FrameTransport.java   |  25 ++-
 .../qpid/tests/protocol/v1_0/Interaction.java      | 149 +++++++++++++++-
 .../org/apache/qpid/tests/protocol/v1_0/Utils.java |  25 +--
 .../websocket/WebSocketFrameTransport.java         |   8 +-
 .../qpid/tests/protocol/v1_0/DecodeErrorTest.java  |  82 +++------
 .../protocol/v1_0/ExistingQueueAdminTest.java      |  10 +-
 .../qpid/tests/protocol/v1_0/ProtocolAsserts.java  | 120 +++++++++++++
 .../anonymousterminus/AnonymousTerminusTest.java   |  64 +++----
 .../bindmapjms/TemporaryDestinationTest.java       |  78 ++++-----
 .../bindmapjms/TopicDestinationTest.java           |  37 ++--
 .../v1_0/extensions/filter/FilterTest.java         |  25 +--
 .../v1_0/extensions/management/ManagementTest.java |  19 +-
 .../extensions/qpid/message/MalformedMessage.java  |  18 +-
 .../extensions/qpid/queue/QueueDeletionTest.java   |  44 ++---
 .../transactiontimeout/TransactionTimeoutTest.java |  22 +--
 .../extensions/soleconn/CloseExistingPolicy.java   |  58 +++----
 .../v1_0/extensions/soleconn/MixedPolicy.java      |  47 ++---
 .../soleconn/RefuseConnectionPolicy.java           |  73 +++-----
 .../extensions/soleconn/SoleConnectionAsserts.java |  11 +-
 .../v1_0/extensions/websocket/WebSocketTest.java   |  27 +--
 .../protocol/v1_0/messaging/DeleteOnCloseTest.java |  68 ++++----
 .../protocol/v1_0/messaging/MessageFormat.java     |  48 +++---
 .../protocol/v1_0/messaging/MultiTransferTest.java |  51 ++----
 .../tests/protocol/v1_0/messaging/OutcomeTest.java |  73 ++++++--
 .../protocol/v1_0/messaging/TransferTest.java      | 191 ++++++++++-----------
 .../protocol/v1_0/transaction/DischargeTest.java   |  63 +++----
 .../transaction/TransactionalTransferTest.java     | 153 ++++++-----------
 .../v1_0/transport/ProtocolHeaderTest.java         |  11 +-
 .../v1_0/transport/connection/IdleTimeoutTest.java |  14 +-
 .../v1_0/transport/connection/OpenTest.java        |  60 +++----
 .../protocol/v1_0/transport/link/AttachTest.java   |  38 ++--
 .../protocol/v1_0/transport/link/FlowTest.java     | 104 ++++-------
 .../v1_0/transport/link/LinkStealingTest.java      |  16 +-
 .../v1_0/transport/link/ResumeDeliveriesTest.java  |  55 +++---
 .../v1_0/transport/security/sasl/SaslTest.java     |  30 ++--
 .../qpid/SaslAuthenticationTimeoutTest.java        |   4 +-
 .../protocol/v1_0/transport/session/BeginTest.java |  32 ++--
 .../qpid/systests/admin/SpawnBrokerAdmin.java      |   6 +
 .../org/apache/qpid/tests/utils/BrokerAdmin.java   |   1 +
 .../utils/EmbeddedBrokerPerClassAdminImpl.java     |   6 +
 .../tests/utils/ExternalQpidBrokerAdminImpl.java   |  12 +-
 .../tests/utils/LoggingBrokerAdminDecorator.java   |   6 +
 44 files changed, 1006 insertions(+), 1094 deletions(-)
 create mode 100644 systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/ProtocolAsserts.java


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


[qpid-broker-j] 08/08: QPID-8349: [Tests][AMQP 1.0] Run tests with SASL authentication when anonymous access is not supported

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

orudyy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/qpid-broker-j.git

commit 13de81fc8fa91c7cb0f2a9208905ab6b612db55a
Author: Alex Rudyy <or...@apache.org>
AuthorDate: Fri Aug 23 17:50:59 2019 +0100

    QPID-8349: [Tests][AMQP 1.0] Run tests with SASL authentication when anonymous access is not supported
---
 .../tests/protocol/v1_0/ExistingQueueAdmin.java    | 41 ++++------
 .../qpid/tests/protocol/v1_0/FrameTransport.java   | 25 ++++--
 .../qpid/tests/protocol/v1_0/Interaction.java      | 91 +++++++++++++++++++++-
 .../org/apache/qpid/tests/protocol/v1_0/Utils.java | 14 ++--
 .../websocket/WebSocketFrameTransport.java         |  8 +-
 .../qpid/tests/protocol/v1_0/DecodeErrorTest.java  | 18 +----
 .../protocol/v1_0/ExistingQueueAdminTest.java      | 10 +--
 .../anonymousterminus/AnonymousTerminusTest.java   | 32 ++++----
 .../bindmapjms/TemporaryDestinationTest.java       | 30 +++----
 .../bindmapjms/TopicDestinationTest.java           | 21 ++---
 .../v1_0/extensions/filter/FilterTest.java         | 15 ++--
 .../v1_0/extensions/management/ManagementTest.java | 12 +--
 .../extensions/qpid/message/MalformedMessage.java  | 12 +--
 .../extensions/qpid/queue/QueueDeletionTest.java   | 13 +---
 .../transactiontimeout/TransactionTimeoutTest.java | 11 +--
 .../extensions/soleconn/CloseExistingPolicy.java   | 24 ++----
 .../v1_0/extensions/soleconn/MixedPolicy.java      | 20 ++---
 .../soleconn/RefuseConnectionPolicy.java           | 28 +++----
 .../v1_0/extensions/websocket/WebSocketTest.java   | 17 ++--
 .../protocol/v1_0/messaging/DeleteOnCloseTest.java | 40 ++++------
 .../protocol/v1_0/messaging/MessageFormat.java     |  8 +-
 .../protocol/v1_0/messaging/MultiTransferTest.java | 25 +++---
 .../tests/protocol/v1_0/messaging/OutcomeTest.java | 17 ++--
 .../protocol/v1_0/messaging/TransferTest.java      | 77 +++++++++---------
 .../protocol/v1_0/transaction/DischargeTest.java   | 20 ++---
 .../transaction/TransactionalTransferTest.java     | 73 +++++------------
 .../v1_0/transport/ProtocolHeaderTest.java         | 12 +--
 .../v1_0/transport/connection/IdleTimeoutTest.java |  8 +-
 .../v1_0/transport/connection/OpenTest.java        | 27 +++----
 .../protocol/v1_0/transport/link/AttachTest.java   | 17 ++--
 .../protocol/v1_0/transport/link/FlowTest.java     | 41 ++++------
 .../v1_0/transport/link/LinkStealingTest.java      |  9 +--
 .../v1_0/transport/link/ResumeDeliveriesTest.java  | 30 ++++---
 .../v1_0/transport/security/sasl/SaslTest.java     | 30 +++----
 .../qpid/SaslAuthenticationTimeoutTest.java        |  4 +-
 .../protocol/v1_0/transport/session/BeginTest.java | 13 +---
 .../qpid/systests/admin/SpawnBrokerAdmin.java      |  6 ++
 .../org/apache/qpid/tests/utils/BrokerAdmin.java   |  1 +
 .../utils/EmbeddedBrokerPerClassAdminImpl.java     |  6 ++
 .../tests/utils/ExternalQpidBrokerAdminImpl.java   | 12 ++-
 .../tests/utils/LoggingBrokerAdminDecorator.java   |  6 ++
 41 files changed, 399 insertions(+), 525 deletions(-)

diff --git a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/ExistingQueueAdmin.java b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/ExistingQueueAdmin.java
index d6c4a2c..d0ad60d 100644
--- a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/ExistingQueueAdmin.java
+++ b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/ExistingQueueAdmin.java
@@ -22,8 +22,6 @@ package org.apache.qpid.tests.protocol.v1_0;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 
-import java.net.InetSocketAddress;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -58,16 +56,22 @@ public class ExistingQueueAdmin implements QueueAdmin
     @Override
     public void deleteQueue(final BrokerAdmin brokerAdmin, final String queueName)
     {
-        drain(queueName, brokerAdmin.getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP));
+        try
+        {
+            drainQueue(brokerAdmin, queueName);
+        }
+        catch (Exception e)
+        {
+            throw new BrokerAdminException(String.format("Cannot drain queue '%s'", queueName), e);
+        }
     }
 
     @Override
     public void putMessageOnQueue(final BrokerAdmin brokerAdmin, final String queueName, final String... message)
     {
-        final InetSocketAddress brokerAddress = brokerAdmin.getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
         try
         {
-            putMessageOnQueue(brokerAddress, queueName, message);
+            send(brokerAdmin, queueName, message);
         }
         catch (Exception e)
         {
@@ -89,23 +93,11 @@ public class ExistingQueueAdmin implements QueueAdmin
         return true;
     }
 
-    private void drain(final String queueName, final InetSocketAddress brokerAddress)
+    private void send(final BrokerAdmin brokerAdmin,
+                      final String queueName,
+                      final String... message) throws Exception
     {
-        try
-        {
-            drainQueue(brokerAddress, queueName);
-        }
-        catch (Exception e)
-        {
-            throw new BrokerAdminException(String.format("Cannot drain queue '%s'", queueName), e);
-        }
-    }
-
-    private void putMessageOnQueue(final InetSocketAddress brokerAddress,
-                                   final String queueName,
-                                   final String... message) throws Exception
-    {
-        try (FrameTransport transport = new FrameTransport(brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(brokerAdmin).connect())
         {
             final Interaction interaction = transport.newInteraction();
             interaction.negotiateOpen()
@@ -143,11 +135,11 @@ public class ExistingQueueAdmin implements QueueAdmin
     }
 
 
-    private void drainQueue(final InetSocketAddress brokerAddress, final String queueName) throws Exception
+    private void drainQueue(final BrokerAdmin brokerAdmin, final String queueName) throws Exception
     {
         final String controlMessage = String.format("---%s---", new StringUtil().randomAlphaNumericString(32));
-        putMessageOnQueue(brokerAddress, queueName, controlMessage);
-        try (FrameTransport transport = new FrameTransport(brokerAddress).connect())
+        send(brokerAdmin, queueName, controlMessage);
+        try (FrameTransport transport = new FrameTransport(brokerAdmin).connect())
         {
             final Interaction interaction = transport.newInteraction();
             interaction.negotiateOpen()
@@ -194,5 +186,4 @@ public class ExistingQueueAdmin implements QueueAdmin
             closeInteraction(interaction);
         }
     }
-
 }
diff --git a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/FrameTransport.java b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/FrameTransport.java
index 219c423..dd646d1 100644
--- a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/FrameTransport.java
+++ b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/FrameTransport.java
@@ -21,20 +21,26 @@ package org.apache.qpid.tests.protocol.v1_0;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 
-import java.net.InetSocketAddress;
-
 import org.apache.qpid.tests.protocol.AbstractFrameTransport;
+import org.apache.qpid.tests.utils.BrokerAdmin;
 
 public class FrameTransport extends AbstractFrameTransport<Interaction>
 {
-    public FrameTransport(final InetSocketAddress brokerAddress)
+    private final BrokerAdmin.PortType _portType;
+    private final BrokerAdmin _brokerAdmin;
+
+    public FrameTransport(final BrokerAdmin brokerAdmin)
     {
-        this(brokerAddress, false);
+        this(brokerAdmin, getPortType(brokerAdmin));
     }
 
-    public FrameTransport(final InetSocketAddress brokerAddress, boolean isSasl)
+    public FrameTransport(final BrokerAdmin brokerAdmin, final BrokerAdmin.PortType portType)
     {
-        super(brokerAddress, new FrameDecoder(isSasl), new FrameEncoder());
+        super(brokerAdmin.getBrokerAddress(portType),
+              new FrameDecoder(portType == BrokerAdmin.PortType.AMQP),
+              new FrameEncoder());
+        _portType = portType;
+        _brokerAdmin = brokerAdmin;
     }
 
     @Override
@@ -52,6 +58,11 @@ public class FrameTransport extends AbstractFrameTransport<Interaction>
 
     public Interaction newInteraction()
     {
-        return new Interaction(this);
+        return new Interaction(this, _brokerAdmin, _portType);
+    }
+
+    private static BrokerAdmin.PortType getPortType(final BrokerAdmin brokerAdmin)
+    {
+        return brokerAdmin.isAnonymousSupported() ? BrokerAdmin.PortType.ANONYMOUS_AMQP : BrokerAdmin.PortType.AMQP;
     }
 }
diff --git a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Interaction.java b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Interaction.java
index ccebfda..e776d0c 100644
--- a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Interaction.java
+++ b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Interaction.java
@@ -20,6 +20,8 @@
 
 package org.apache.qpid.tests.protocol.v1_0;
 
+import static org.apache.qpid.server.security.auth.manager.AbstractScramAuthenticationManager.PLAIN;
+
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -33,6 +35,7 @@ import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.function.Consumer;
+import java.util.stream.Collectors;
 
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.MoreExecutors;
@@ -58,7 +61,10 @@ import org.apache.qpid.server.protocol.v1_0.type.messaging.Filter;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.Rejected;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.Source;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.Target;
+import org.apache.qpid.server.protocol.v1_0.type.security.SaslCode;
 import org.apache.qpid.server.protocol.v1_0.type.security.SaslInit;
+import org.apache.qpid.server.protocol.v1_0.type.security.SaslMechanisms;
+import org.apache.qpid.server.protocol.v1_0.type.security.SaslOutcome;
 import org.apache.qpid.server.protocol.v1_0.type.security.SaslResponse;
 import org.apache.qpid.server.protocol.v1_0.type.transaction.Coordinator;
 import org.apache.qpid.server.protocol.v1_0.type.transaction.Declare;
@@ -77,11 +83,16 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.ReceiverSettleMode;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
 import org.apache.qpid.server.protocol.v1_0.type.transport.SenderSettleMode;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Transfer;
+import org.apache.qpid.server.security.auth.manager.AnonymousAuthenticationManager;
+import org.apache.qpid.server.util.StringUtil;
 import org.apache.qpid.tests.protocol.AbstractInteraction;
 import org.apache.qpid.tests.protocol.Response;
+import org.apache.qpid.tests.utils.BrokerAdmin;
 
 public class Interaction extends AbstractInteraction<Interaction>
 {
+    private static final byte[] SASL_AMQP_HEADER_BYTES = "AMQP\3\1\0\0".getBytes(StandardCharsets.UTF_8);
+
     private static final FrameBody EMPTY_FRAME = (channel, conn) -> {
         throw new UnsupportedOperationException();
     };
@@ -102,6 +113,8 @@ public class Interaction extends AbstractInteraction<Interaction>
     private final Disposition _disposition;
     private final SaslInit _saslInit;
     private final SaslResponse _saslResponse;
+    private final BrokerAdmin _brokerAdmin;
+    private final BrokerAdmin.PortType _portType;
     private byte[] _protocolHeader;
     private UnsignedShort _connectionChannel;
     private UnsignedShort _sessionChannel;
@@ -115,9 +128,11 @@ public class Interaction extends AbstractInteraction<Interaction>
     private AtomicLong _coordinatorCredits = new AtomicLong();
     private InteractionTransactionalState _transactionalState;
 
-    Interaction(final FrameTransport frameTransport)
+    Interaction(final FrameTransport frameTransport, BrokerAdmin brokerAdmin, BrokerAdmin.PortType portType)
     {
         super(frameTransport);
+        _brokerAdmin = brokerAdmin;
+        _portType = portType;
         final UnsignedInteger defaultLinkHandle = UnsignedInteger.ZERO;
 
         _protocolHeader = frameTransport.getProtocolHeader();
@@ -1335,7 +1350,79 @@ public class Interaction extends AbstractInteraction<Interaction>
 
     public Interaction sendOpen() throws Exception
     {
-        negotiateProtocol().consumeResponse().open();
+        if ((_portType == BrokerAdmin.PortType.ANONYMOUS_AMQP || _portType == BrokerAdmin.PortType.ANONYMOUS_AMQPWS)
+            && _brokerAdmin.isAnonymousSupported())
+        {
+            sendProtocolAndOpen();
+        }
+        else if (_portType == BrokerAdmin.PortType.AMQP
+                 && _brokerAdmin.isSASLSupported()
+                 && _brokerAdmin.isSASLMechanismSupported(PLAIN))
+        {
+            sendSasl();
+            protocolHeader(getTransport().getProtocolHeader()).sendProtocolAndOpen();
+        }
+        else
+        {
+            throw new IllegalStateException("Only ANONYMOUS or PLAIN authentication currently supported by the tests");
+        }
         return this;
     }
+
+    private void sendProtocolAndOpen() throws Exception
+    {
+        negotiateProtocol().consumeResponse().open();
+    }
+
+    private void sendSasl() throws Exception
+    {
+        final byte[] protocolResponse = protocolHeader(SASL_AMQP_HEADER_BYTES)
+                .negotiateProtocol().consumeResponse()
+                .getLatestResponse(byte[].class);
+        if (!Arrays.equals(SASL_AMQP_HEADER_BYTES, protocolResponse))
+        {
+            throw new IllegalStateException(String.format(
+                    "Unexpected protocol '%s' is reported from broker supporting SASL",
+                    StringUtil.toHex(protocolResponse)));
+        }
+
+        final SaslMechanisms mechanisms = consumeResponse().getLatestResponse(SaslMechanisms.class);
+        final Symbol[] supportedMechanisms = mechanisms.getSaslServerMechanisms();
+        if (Arrays.stream(supportedMechanisms).noneMatch(m -> m.toString().equalsIgnoreCase(PLAIN)))
+        {
+            if (Arrays.stream(supportedMechanisms)
+                      .noneMatch(m -> m.toString().equalsIgnoreCase(AnonymousAuthenticationManager.MECHANISM_NAME)))
+            {
+                throw new IllegalStateException(String.format(
+                        "PLAIN or ANONYMOUS SASL mechanism is not listed among supported '%s'",
+                        Arrays.stream(supportedMechanisms)
+                              .map(String::valueOf)
+                              .collect(Collectors.joining(","))));
+            }
+            else
+            {
+                authenticate(AnonymousAuthenticationManager.MECHANISM_NAME, new byte[0]);
+            }
+        }
+        else
+        {
+            byte[] initialResponseBytes =
+                    String.format("\0%s\0%s", _brokerAdmin.getValidUsername(), _brokerAdmin.getValidPassword())
+                          .getBytes(StandardCharsets.US_ASCII);
+            authenticate(PLAIN, initialResponseBytes);
+        }
+    }
+
+    private void authenticate(final String mechanism, final byte[] initialResponseBytes) throws Exception
+    {
+        final SaslOutcome saslOutcome = saslMechanism(Symbol.getSymbol(mechanism))
+                .saslInitialResponse(new Binary(initialResponseBytes))
+                .saslInit().consumeResponse()
+                .getLatestResponse(SaslOutcome.class);
+
+        if (!SaslCode.OK.equals(saslOutcome.getCode()))
+        {
+            throw new IllegalStateException("Authentication failed.");
+        }
+    }
 }
diff --git a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Utils.java b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Utils.java
index f76a1b4..7e6364c 100644
--- a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Utils.java
+++ b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Utils.java
@@ -22,7 +22,6 @@ package org.apache.qpid.tests.protocol.v1_0;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 
-import java.net.InetSocketAddress;
 import java.util.stream.IntStream;
 
 import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
@@ -40,10 +39,9 @@ import org.apache.qpid.tests.utils.BrokerAdmin;
 
 public class Utils
 {
-    public static boolean doesNodeExist(final InetSocketAddress brokerAddress,
-                                        final String nodeAddress) throws Exception
+    public static boolean doesNodeExist(final BrokerAdmin brokerAdmin, final String nodeAddress) throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(brokerAdmin).connect())
         {
             final Interaction interaction = transport.newInteraction();
             final Attach attachValidationResponse = interaction.negotiateOpen()
@@ -68,10 +66,9 @@ public class Utils
         }
     }
 
-    public static Object receiveMessage(final InetSocketAddress brokerAddress,
-                                        final String queueName) throws Exception
+    public static Object receiveMessage(final BrokerAdmin brokerAdmin, final String queueName) throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(brokerAdmin).connect())
         {
             final Interaction interaction = transport.newInteraction();
             interaction.negotiateOpen()
@@ -146,8 +143,7 @@ public class Utils
         }
         else
         {
-            final InetSocketAddress brokerAddress = brokerAdmin.getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-            try (FrameTransport transport = new FrameTransport(brokerAddress).connect())
+            try (FrameTransport transport = new FrameTransport(brokerAdmin).connect())
             {
                 final Interaction interaction = transport.newInteraction();
                 interaction.negotiateOpen()
diff --git a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/extensions/websocket/WebSocketFrameTransport.java b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/extensions/websocket/WebSocketFrameTransport.java
index fb6b169..4f2c5fc 100644
--- a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/extensions/websocket/WebSocketFrameTransport.java
+++ b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/extensions/websocket/WebSocketFrameTransport.java
@@ -21,7 +21,6 @@
 
 package org.apache.qpid.tests.protocol.v1_0.extensions.websocket;
 
-import java.net.InetSocketAddress;
 import java.net.URI;
 import java.nio.charset.StandardCharsets;
 
@@ -48,6 +47,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
+import org.apache.qpid.tests.utils.BrokerAdmin;
 
 public class WebSocketFrameTransport extends FrameTransport
 {
@@ -57,9 +57,9 @@ public class WebSocketFrameTransport extends FrameTransport
     private final WebSocketDeframingInputHandler _webSocketDeframingInputHandler = new WebSocketDeframingInputHandler();
     private final WebSocketClientHandler _webSocketClientHandler;
 
-    public WebSocketFrameTransport(final InetSocketAddress addr)
+    public WebSocketFrameTransport(final BrokerAdmin brokerAdmin)
     {
-        super(addr);
+        super(brokerAdmin, BrokerAdmin.PortType.ANONYMOUS_AMQPWS);
         URI uri = URI.create(String.format("tcp://%s:%d/",
                                            getBrokerAddress().getHostString(),
                                            getBrokerAddress().getPort()));
@@ -98,7 +98,7 @@ public class WebSocketFrameTransport extends FrameTransport
         private boolean _splitFrames;
 
         @Override
-        public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception
+        public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise)
         {
             if (msg instanceof ByteBuf)
             {
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/DecodeErrorTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/DecodeErrorTest.java
index f8695bc..b881b0d 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/DecodeErrorTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/DecodeErrorTest.java
@@ -29,13 +29,11 @@ import static org.hamcrest.Matchers.greaterThan;
 import static org.hamcrest.Matchers.is;
 import static org.junit.Assume.assumeThat;
 
-import java.net.InetSocketAddress;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
-import org.junit.Before;
 import org.junit.Test;
 
 import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
@@ -60,14 +58,6 @@ import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
 
 public class DecodeErrorTest extends BrokerAdminUsingTestBase
 {
-    private InetSocketAddress _brokerAddress;
-
-    @Before
-    public void setUp()
-    {
-        _brokerAddress = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-    }
-
     @Test
     @SpecificationTest(section = "3.2",
             description = "Altogether a message consists of the following sections: Zero or one header,"
@@ -75,7 +65,7 @@ public class DecodeErrorTest extends BrokerAdminUsingTestBase
     public void illegalMessage() throws Exception
     {
         getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME);
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             interaction.negotiateOpen()
@@ -105,7 +95,7 @@ public class DecodeErrorTest extends BrokerAdminUsingTestBase
 
         final String validMessage = getTestName() + "_2";
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, validMessage);
-        assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(validMessage)));
+        assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(validMessage)));
     }
 
     @Test
@@ -114,7 +104,7 @@ public class DecodeErrorTest extends BrokerAdminUsingTestBase
                           + "The value of this entry MUST be of a type which provides the lifetime-policy archetype.")
     public void nodePropertiesLifetimePolicy() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Source source = new Source();
             source.setDynamic(Boolean.TRUE);
@@ -138,7 +128,7 @@ public class DecodeErrorTest extends BrokerAdminUsingTestBase
                           + "The value of this entry MUST be of a type which provides the lifetime-policy archetype.")
     public void nodePropertiesSupportedDistributionModes() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Target target = new Target();
             target.setDynamic(Boolean.TRUE);
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/ExistingQueueAdminTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/ExistingQueueAdminTest.java
index 26b2050..86e60f0 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/ExistingQueueAdminTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/ExistingQueueAdminTest.java
@@ -25,8 +25,6 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-import java.net.InetSocketAddress;
-
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -41,7 +39,6 @@ import org.apache.qpid.tests.utils.EmbeddedBrokerPerClassAdminImpl;
 public class ExistingQueueAdminTest extends UnitTestBase
 {
     private static BrokerAdmin _brokerAdmin;
-    private static InetSocketAddress _brokerAddress;
 
     private ExistingQueueAdmin _queueAdmin;
     private String _testQueueName;
@@ -51,7 +48,6 @@ public class ExistingQueueAdminTest extends UnitTestBase
     {
         _brokerAdmin = new EmbeddedBrokerPerClassAdminImpl();
         _brokerAdmin.beforeTestClass(ExistingQueueAdminTest.class);
-        _brokerAddress = _brokerAdmin.getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
     }
 
     @AfterClass
@@ -92,7 +88,7 @@ public class ExistingQueueAdminTest extends UnitTestBase
 
         final String controlMessage = String.format("controlMessage %s", _testQueueName);
         _brokerAdmin.putMessageOnQueue(_testQueueName, controlMessage);
-        assertEquals(controlMessage, Utils.receiveMessage(_brokerAddress, _testQueueName));
+        assertEquals(controlMessage, Utils.receiveMessage(_brokerAdmin, _testQueueName));
     }
 
     @Test
@@ -114,8 +110,8 @@ public class ExistingQueueAdminTest extends UnitTestBase
     {
         final String[] messages = Utils.createTestMessageContents(2, _testQueueName);
         _queueAdmin.putMessageOnQueue(_brokerAdmin, _testQueueName, messages);
-        assertEquals(messages[0], Utils.receiveMessage(_brokerAddress, _testQueueName));
-        assertEquals(messages[1], Utils.receiveMessage(_brokerAddress, _testQueueName));
+        assertEquals(messages[0], Utils.receiveMessage(_brokerAdmin, _testQueueName));
+        assertEquals(messages[1], Utils.receiveMessage(_brokerAdmin, _testQueueName));
     }
 
     @Test
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/anonymousterminus/AnonymousTerminusTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/anonymousterminus/AnonymousTerminusTest.java
index a0f244b..903c9fc 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/anonymousterminus/AnonymousTerminusTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/anonymousterminus/AnonymousTerminusTest.java
@@ -31,7 +31,6 @@ import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.oneOf;
 import static org.junit.Assume.assumeThat;
 
-import java.net.InetSocketAddress;
 import java.nio.charset.StandardCharsets;
 
 import org.junit.Before;
@@ -72,15 +71,12 @@ public class AnonymousTerminusTest extends BrokerAdminUsingTestBase
     private static final Symbol ANONYMOUS_RELAY = Symbol.valueOf("ANONYMOUS-RELAY");
     private static final Symbol DELIVERY_TAG = Symbol.valueOf("delivery-tag");
 
-    private InetSocketAddress _brokerAddress;
     private Binary _deliveryTag;
 
     @Before
     public void setUp()
     {
-        final BrokerAdmin brokerAdmin = getBrokerAdmin();
-        brokerAdmin.createQueue(BrokerAdmin.TEST_QUEUE_NAME);
-        _brokerAddress = brokerAdmin.getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
+        getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME);
         _deliveryTag = new Binary("testTag".getBytes(StandardCharsets.UTF_8));
     }
 
@@ -91,7 +87,7 @@ public class AnonymousTerminusTest extends BrokerAdminUsingTestBase
     @Test
     public void transferPreSettledToKnownDestination() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = openInteractionWithAnonymousRelayCapability(transport);
 
@@ -109,7 +105,7 @@ public class AnonymousTerminusTest extends BrokerAdminUsingTestBase
                        .transfer()
                        .detachEndCloseUnconditionally();
 
-            assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME),
+            assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME),
                        is(equalTo(getTestName())));
         }
     }
@@ -127,7 +123,7 @@ public class AnonymousTerminusTest extends BrokerAdminUsingTestBase
     @Test
     public void transferPreSettledToUnknownDestination() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = openInteractionWithAnonymousRelayCapability(transport);
 
@@ -167,7 +163,7 @@ public class AnonymousTerminusTest extends BrokerAdminUsingTestBase
     @Test
     public void transferUnsettledToUnknownDestinationWhenRejectedOutcomeSupportedBySource() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = openInteractionWithAnonymousRelayCapability(transport);
 
@@ -214,7 +210,7 @@ public class AnonymousTerminusTest extends BrokerAdminUsingTestBase
     @Test
     public void transferUnsettledToUnknownDestinationWhenRejectedOutcomeNotSupportedBySource() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = openInteractionWithAnonymousRelayCapability(transport);
 
@@ -247,7 +243,7 @@ public class AnonymousTerminusTest extends BrokerAdminUsingTestBase
     @Test
     public void transferPreSettledInTransactionToKnownDestination() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = openInteractionWithAnonymousRelayCapability(transport);
             final UnsignedInteger linkHandle = UnsignedInteger.ONE;
@@ -273,7 +269,7 @@ public class AnonymousTerminusTest extends BrokerAdminUsingTestBase
 
             assertThat(interaction.getCoordinatorLatestDeliveryState(), is(instanceOf(Accepted.class)));
 
-            Object receivedMessage = Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME);
+            Object receivedMessage = Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME);
             assertThat(receivedMessage, is(equalTo(getTestName())));
         }
     }
@@ -281,7 +277,7 @@ public class AnonymousTerminusTest extends BrokerAdminUsingTestBase
     @Test
     public void transferUnsettledInTransactionToKnownDestination() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = openInteractionWithAnonymousRelayCapability(transport);
             final UnsignedInteger linkHandle = UnsignedInteger.ONE;
@@ -318,7 +314,7 @@ public class AnonymousTerminusTest extends BrokerAdminUsingTestBase
 
             assertThat(interaction.getCoordinatorLatestDeliveryState(), is(instanceOf(Accepted.class)));
 
-            Object receivedMessage = Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME);
+            Object receivedMessage = Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME);
             assertThat(receivedMessage, is(equalTo(getTestName())));
         }
     }
@@ -326,7 +322,7 @@ public class AnonymousTerminusTest extends BrokerAdminUsingTestBase
     @Test
     public void transferUnsettledInTransactionToUnknownDestinationWhenRejectedOutcomeSupportedBySource() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = openInteractionWithAnonymousRelayCapability(transport);
             final UnsignedInteger linkHandle = UnsignedInteger.ONE;
@@ -374,7 +370,7 @@ public class AnonymousTerminusTest extends BrokerAdminUsingTestBase
     @Test
     public void transferUnsettledInTransactionToUnknownDestinationWhenRejectedOutcomeNotSupportedBySource() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = openInteractionWithAnonymousRelayCapability(transport);
             final UnsignedInteger linkHandle = UnsignedInteger.ONE;
@@ -442,7 +438,7 @@ public class AnonymousTerminusTest extends BrokerAdminUsingTestBase
     public void transferPreSettledInTransactionToUnknownDestinationWhenRejectOutcomeSupportedByTxController()
             throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final UnsignedInteger linkHandle = UnsignedInteger.ONE;
             final Interaction interaction =
@@ -508,7 +504,7 @@ public class AnonymousTerminusTest extends BrokerAdminUsingTestBase
     public void transferPreSettledInTransactionToUnknownDestinationWhenRejectOutcomeNotSupportedByTxController()
             throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final UnsignedInteger linkHandle = UnsignedInteger.ONE;
             final Interaction interaction =
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/bindmapjms/TemporaryDestinationTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/bindmapjms/TemporaryDestinationTest.java
index daf6e9e..8a37f9d 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/bindmapjms/TemporaryDestinationTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/bindmapjms/TemporaryDestinationTest.java
@@ -27,11 +27,9 @@ import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.is;
 import static org.junit.Assume.assumeThat;
 
-import java.net.InetSocketAddress;
 import java.util.Collections;
 
 import org.hamcrest.Matchers;
-import org.junit.Before;
 import org.junit.Test;
 
 import org.apache.qpid.server.protocol.v1_0.Session_1_0;
@@ -52,20 +50,12 @@ import org.apache.qpid.tests.protocol.SpecificationTest;
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
 import org.apache.qpid.tests.protocol.v1_0.Interaction;
 import org.apache.qpid.tests.protocol.v1_0.Utils;
-import org.apache.qpid.tests.utils.BrokerAdmin;
 import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
 
 public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
 {
     private static final Symbol TEMPORARY_QUEUE = Symbol.valueOf("temporary-queue");
     private static final Symbol TEMPORARY_TOPIC = Symbol.valueOf("temporary-topic");
-    private InetSocketAddress _brokerAddress;
-
-    @Before
-    public void setUp()
-    {
-        _brokerAddress = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-    }
 
     @Test
     @SpecificationTest(section = "5.3",
@@ -91,7 +81,7 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
     {
         String newTemporaryNodeAddress;
 
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Target target = createTarget(targetCapabilities);
 
@@ -115,7 +105,7 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
             interaction.doCloseConnection();
         }
 
-        assertThat(Utils.doesNodeExist(_brokerAddress, newTemporaryNodeAddress), is(false));
+        assertThat(Utils.doesNodeExist(getBrokerAdmin(), newTemporaryNodeAddress), is(false));
     }
 
 
@@ -140,7 +130,7 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
     public void createTemporaryQueueReceivingLink() throws Exception
     {
         final Symbol[] capabilities = new Symbol[]{TEMPORARY_QUEUE};
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Target target = createTarget(capabilities);
 
@@ -200,7 +190,7 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
     public void createTemporaryQueueReceivingLinkFromOtherConnectionDisallowed() throws Exception
     {
         final Symbol[] capabilities = new Symbol[]{TEMPORARY_QUEUE};
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Target target = createTarget(capabilities);
 
@@ -239,7 +229,7 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
     public void createTemporaryQueueSendingLinkFromOtherConnectionAllowed() throws Exception
     {
         final Symbol[] capabilities = new Symbol[]{TEMPORARY_QUEUE};
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Target target = createTarget(capabilities);
 
@@ -290,7 +280,7 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
     public void createTemporaryTopicSubscriptionReceivingLink() throws Exception
     {
         final Symbol[] capabilities = new Symbol[]{TEMPORARY_TOPIC};
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Source source = new Source();
             source.setDynamicNodeProperties(Collections.singletonMap(Session_1_0.LIFETIME_POLICY, new DeleteOnClose()));
@@ -354,7 +344,7 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
     public void createTemporaryTopicSubscriptionReceivingLinkFromOtherConnectionDisallowed() throws Exception
     {
         final Symbol[] capabilities = new Symbol[]{TEMPORARY_TOPIC};
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Source source = new Source();
             source.setDynamicNodeProperties(Collections.singletonMap(Session_1_0.LIFETIME_POLICY, new DeleteOnClose()));
@@ -395,7 +385,7 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
     public void createTemporaryTopicSendingLinkFromOtherConnectionAllowed() throws Exception
     {
         final Symbol[] capabilities = new Symbol[]{TEMPORARY_TOPIC};
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Source source = new Source();
             source.setDynamicNodeProperties(Collections.singletonMap(Session_1_0.LIFETIME_POLICY, new DeleteOnClose()));
@@ -427,7 +417,7 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
 
     private void assertReceivingLinkFails(final Source source, final AmqpError expectedError) throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             final Detach responseDetach = interaction.negotiateOpen()
@@ -448,7 +438,7 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
 
     private void assertSendingLinkSucceeds(final String address) throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Target target = new Target();
             target.setAddress(address);
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/bindmapjms/TopicDestinationTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/bindmapjms/TopicDestinationTest.java
index 968de73..e60337c 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/bindmapjms/TopicDestinationTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/bindmapjms/TopicDestinationTest.java
@@ -32,9 +32,6 @@ import static org.hamcrest.Matchers.lessThan;
 import static org.hamcrest.Matchers.notNullValue;
 import static org.hamcrest.Matchers.nullValue;
 
-import java.net.InetSocketAddress;
-
-import org.junit.Before;
 import org.junit.Test;
 
 import org.apache.qpid.server.protocol.v1_0.type.Symbol;
@@ -50,7 +47,6 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
 import org.apache.qpid.tests.protocol.SpecificationTest;
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
 import org.apache.qpid.tests.protocol.v1_0.Interaction;
-import org.apache.qpid.tests.utils.BrokerAdmin;
 import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
 import org.apache.qpid.tests.utils.BrokerSpecific;
 
@@ -60,13 +56,6 @@ public class TopicDestinationTest extends BrokerAdminUsingTestBase
     private static final Symbol TOPIC = Symbol.valueOf("topic");
     private static final Symbol GLOBAL = Symbol.valueOf("global");
     private static final Symbol SHARED = Symbol.valueOf("shared");
-    private InetSocketAddress _brokerAddress;
-
-    @Before
-    public void setUp()
-    {
-        _brokerAddress = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-    }
 
     @Test
     @SpecificationTest(section = "5.2",
@@ -77,7 +66,7 @@ public class TopicDestinationTest extends BrokerAdminUsingTestBase
                           + " Destination Type = Topic, terminus capability (type) = topic")
     public void nonSharedVolatileSubscriptionLinkAttachDetach() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Source source = new Source();
             source.setExpiryPolicy(TerminusExpiryPolicy.LINK_DETACH);
@@ -111,7 +100,7 @@ public class TopicDestinationTest extends BrokerAdminUsingTestBase
     @Test
     public void nonSharedDurableSubscriptionLinkAttachDetach() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Source source = new Source();
             source.setExpiryPolicy(TerminusExpiryPolicy.NEVER);
@@ -146,7 +135,7 @@ public class TopicDestinationTest extends BrokerAdminUsingTestBase
     public void sharedGlobalVolatileSubscriptionLinkAttachDetach() throws Exception
     {
         String subscriptionName = "foo";
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Source source = new Source();
             source.setExpiryPolicy(TerminusExpiryPolicy.LINK_DETACH);
@@ -204,7 +193,7 @@ public class TopicDestinationTest extends BrokerAdminUsingTestBase
     public void sharedGlobalDurableSubscriptionLinkAttachDetach() throws Exception
     {
         String subscriptionName = "foo";
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Source source = new Source();
             source.setExpiryPolicy(TerminusExpiryPolicy.NEVER);
@@ -286,7 +275,7 @@ public class TopicDestinationTest extends BrokerAdminUsingTestBase
     public void sharedGlobalDurableSubscriptionCloseWithActiveLink() throws Exception
     {
         String subscriptionName = "foo";
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Source source = new Source();
             source.setExpiryPolicy(TerminusExpiryPolicy.NEVER);
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/filter/FilterTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/filter/FilterTest.java
index fd47982..5c1768d 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/filter/FilterTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/filter/FilterTest.java
@@ -67,21 +67,17 @@ import org.apache.qpid.tests.utils.ConfigItem;
 @ConfigItem(name = "qpid.tests.mms.messagestore.persistence", value = "false", jvm = true)
 public class FilterTest extends BrokerAdminUsingTestBase
 {
-    public static final String TEST_MESSAGE_CONTENT = "testContent";
-    private InetSocketAddress _brokerAddress;
-
     @Before
     public void setUp()
     {
         getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME);
-        _brokerAddress = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
     }
 
     @Test
     @SpecificationTest(section = "3.5.1", description = "A source can restrict the messages transferred from a source by specifying a filter.")
     public void selectorFilter() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             interaction.negotiateOpen()
@@ -97,7 +93,7 @@ public class FilterTest extends BrokerAdminUsingTestBase
             {
                 QpidByteBuffer payload =
                         generateMessagePayloadWithApplicationProperties(Collections.singletonMap("index", i),
-                                                                        TEST_MESSAGE_CONTENT);
+                                                                        getTestName());
                 interaction.transferPayload(payload)
                            .transferSettled(true)
                            .transfer();
@@ -105,7 +101,7 @@ public class FilterTest extends BrokerAdminUsingTestBase
             interaction.detachClose(true).detach().close().sync();
         }
 
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             interaction.negotiateOpen()
@@ -125,7 +121,7 @@ public class FilterTest extends BrokerAdminUsingTestBase
                        .flow();
 
             Object data = interaction.receiveDelivery().decodeLatestDelivery().getDecodedLatestDelivery();
-            assertThat(data, is(equalTo(TEST_MESSAGE_CONTENT)));
+            assertThat(data, is(equalTo(getTestName())));
 
             Map<String, Object> applicationProperties = interaction.getLatestDeliveryApplicationProperties();
             assertThat(applicationProperties, is(notNullValue()));
@@ -144,8 +140,7 @@ public class FilterTest extends BrokerAdminUsingTestBase
     @SpecificationTest(section = "3.5.1", description = "")
     public void unsupportedFilter() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             final Map<Symbol, Filter> filters = new HashMap<>();
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/management/ManagementTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/management/ManagementTest.java
index 5034d6e..aea8b23 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/management/ManagementTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/management/ManagementTest.java
@@ -27,10 +27,8 @@ import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.is;
 import static org.junit.Assume.assumeThat;
 
-import java.net.InetSocketAddress;
 import java.util.Collections;
 
-import org.junit.Before;
 import org.junit.Test;
 
 import org.apache.qpid.server.protocol.v1_0.Session_1_0;
@@ -48,18 +46,10 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
 import org.apache.qpid.tests.protocol.SpecificationTest;
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
 import org.apache.qpid.tests.protocol.v1_0.Interaction;
-import org.apache.qpid.tests.utils.BrokerAdmin;
 import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
 
 public class ManagementTest extends BrokerAdminUsingTestBase
 {
-    private InetSocketAddress _brokerAddress;
-
-    @Before
-    public void setUp()
-    {
-        _brokerAddress = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-    }
 
     @Test
     @SpecificationTest(section = "2.6.7",
@@ -71,7 +61,7 @@ public class ManagementTest extends BrokerAdminUsingTestBase
     {
         assumeThat(getBrokerAdmin().isManagementSupported(), is(equalTo(true)));
 
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Target target = new Target();
             target.setDynamicNodeProperties(Collections.singletonMap(Session_1_0.LIFETIME_POLICY, new DeleteOnClose()));
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/message/MalformedMessage.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/message/MalformedMessage.java
index 66fd9f3..336a07d 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/message/MalformedMessage.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/message/MalformedMessage.java
@@ -28,12 +28,10 @@ import static org.hamcrest.Matchers.greaterThan;
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.notNullValue;
 
-import java.net.InetSocketAddress;
 import java.util.ArrayList;
 import java.util.List;
 
 import org.hamcrest.Matchers;
-import org.junit.Before;
 import org.junit.Test;
 
 import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
@@ -59,20 +57,12 @@ import org.apache.qpid.tests.utils.ConfigItem;
 @ConfigItem(name = "connection.maxUncommittedInMemorySize", value = "1")
 public class MalformedMessage extends BrokerAdminUsingTestBase
 {
-    private InetSocketAddress _brokerAddress;
     private static final String CONTENT_TEXT = "Test";
 
-    @Before
-    public void setUp()
-    {
-        _brokerAddress = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME);
-    }
-
     @Test
     public void malformedMessage() throws Exception
     {
-        try (final FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (final FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             interaction.negotiateOpen()
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/queue/QueueDeletionTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/queue/QueueDeletionTest.java
index ab67702..bf38b05 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/queue/QueueDeletionTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/queue/QueueDeletionTest.java
@@ -30,8 +30,6 @@ import static org.hamcrest.Matchers.greaterThan;
 import static org.hamcrest.Matchers.is;
 import static org.junit.Assume.assumeThat;
 
-import java.net.InetSocketAddress;
-
 import org.junit.Before;
 import org.junit.Test;
 
@@ -61,19 +59,16 @@ import org.apache.qpid.tests.utils.BrokerSpecific;
 public class QueueDeletionTest extends BrokerAdminUsingTestBase
 {
 
-    private InetSocketAddress _brokerAddress;
-
     @Before
     public void setUp()
     {
-        _brokerAddress = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
         getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME);
     }
 
     @Test
     public void senderDetachedOnQueueDelete() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Interaction interaction = transport.newInteraction();
             final Attach responseAttach = interaction.negotiateOpen()
@@ -98,7 +93,7 @@ public class QueueDeletionTest extends BrokerAdminUsingTestBase
     @Test
     public void receiverDetachedOnQueueDelete() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Interaction interaction = transport.newInteraction();
             final Attach responseAttach = interaction.negotiateOpen()
@@ -123,7 +118,7 @@ public class QueueDeletionTest extends BrokerAdminUsingTestBase
     @Test
     public void transactedSenderDetachedOnQueueDeletionWhenTransactionInProgress() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final UnsignedInteger linkHandle = UnsignedInteger.ONE;
 
@@ -176,7 +171,7 @@ public class QueueDeletionTest extends BrokerAdminUsingTestBase
                                 BrokerAdmin.TEST_QUEUE_NAME,
                                 getTestName() + 1,
                                 getTestName() + 2);
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             Attach attach = interaction.negotiateOpen()
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/transactiontimeout/TransactionTimeoutTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/transactiontimeout/TransactionTimeoutTest.java
index 3cf5a10..074ff59 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/transactiontimeout/TransactionTimeoutTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/transactiontimeout/TransactionTimeoutTest.java
@@ -26,8 +26,6 @@ import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.notNullValue;
 
-import java.net.InetSocketAddress;
-
 import org.junit.Before;
 import org.junit.Test;
 
@@ -55,19 +53,16 @@ import org.apache.qpid.tests.utils.ConfigItem;
 @ConfigItem(name = "virtualhost.storeTransactionOpenTimeoutClose", value = "1000")
 public class TransactionTimeoutTest extends BrokerAdminUsingTestBase
 {
-    private InetSocketAddress _brokerAddress;
-
     @Before
     public void setUp()
     {
         getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME);
-        _brokerAddress = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
     }
 
     @Test
     public void transactionalPostingTimeout() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final UnsignedInteger linkHandle = UnsignedInteger.ONE;
 
@@ -107,7 +102,7 @@ public class TransactionTimeoutTest extends BrokerAdminUsingTestBase
     public void transactionalRetirementTimeout() throws Exception
     {
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, getTestName());
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             interaction.negotiateOpen()
@@ -157,6 +152,6 @@ public class TransactionTimeoutTest extends BrokerAdminUsingTestBase
             assertThat(responseClose.getError(), is(notNullValue()));
             assertThat(responseClose.getError().getCondition(), equalTo(TransactionError.TRANSACTION_TIMEOUT));
         }
-        assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
+        assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
     }
 }
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/CloseExistingPolicy.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/CloseExistingPolicy.java
index 065cbbf..6c85ef6 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/CloseExistingPolicy.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/CloseExistingPolicy.java
@@ -33,10 +33,8 @@ import static org.apache.qpid.tests.protocol.v1_0.extensions.soleconn.SoleConnec
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.in;
 
-import java.net.InetSocketAddress;
 import java.util.Collections;
 
-import org.junit.Before;
 import org.junit.Test;
 
 import org.apache.qpid.server.protocol.v1_0.type.UnsignedInteger;
@@ -45,23 +43,15 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Close;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
 import org.apache.qpid.tests.protocol.v1_0.Interaction;
-import org.apache.qpid.tests.utils.BrokerAdmin;
 import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
 
 public class CloseExistingPolicy extends BrokerAdminUsingTestBase
 {
-    private InetSocketAddress _brokerAddress;
-
-    @Before
-    public void setUp()
-    {
-        _brokerAddress = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-    }
 
     @Test
     public void basicNegotiation() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Open responseOpen = transport.newInteraction()
                                          .openContainerId("testContainerId")
@@ -87,7 +77,7 @@ public class CloseExistingPolicy extends BrokerAdminUsingTestBase
     @Test
     public void existingConnectionClosed() throws Exception
     {
-        try (FrameTransport transport1 = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport1 = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction1 = transport1.newInteraction();
             interaction1.openContainerId("testContainerId")
@@ -100,7 +90,7 @@ public class CloseExistingPolicy extends BrokerAdminUsingTestBase
             assumeSoleConnectionCapability(responseOpen);
             assumeEnforcementPolicyCloseExisting(responseOpen);
 
-            try (FrameTransport transport2 = new FrameTransport(_brokerAddress).connect())
+            try (FrameTransport transport2 = new FrameTransport(getBrokerAdmin()).connect())
             {
                 final Interaction interaction2 = transport2.newInteraction();
                 interaction2.openContainerId("testContainerId")
@@ -123,7 +113,7 @@ public class CloseExistingPolicy extends BrokerAdminUsingTestBase
     @Test
     public void strongDetectionWhenConnectionWithoutSoleConnectionCapabilityOpened() throws Exception
     {
-        try (FrameTransport transport1 = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport1 = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction1 = transport1.newInteraction();
             // Omit setting the desired capability to test weak detection
@@ -134,7 +124,7 @@ public class CloseExistingPolicy extends BrokerAdminUsingTestBase
             assumeSoleConnectionCapability(responseOpen);
             assumeDetectionPolicyStrong(responseOpen);
 
-            try (FrameTransport transport2 = new FrameTransport(_brokerAddress).connect())
+            try (FrameTransport transport2 = new FrameTransport(getBrokerAdmin()).connect())
             {
                 final Interaction interaction2 = transport2.newInteraction();
                 interaction2.openContainerId("testContainerId")
@@ -155,7 +145,7 @@ public class CloseExistingPolicy extends BrokerAdminUsingTestBase
     @Test
     public void strongDetection() throws Exception
     {
-        try (FrameTransport transport1 = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport1 = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction1 = transport1.newInteraction();
             Open responseOpen = interaction1.openContainerId("testContainerId")
@@ -170,7 +160,7 @@ public class CloseExistingPolicy extends BrokerAdminUsingTestBase
             assumeEnforcementPolicyCloseExisting(responseOpen);
             assumeDetectionPolicyStrong(responseOpen);
 
-            try (FrameTransport transport2 = new FrameTransport(_brokerAddress).connect())
+            try (FrameTransport transport2 = new FrameTransport(getBrokerAdmin()).connect())
             {
                 final Interaction interaction2 = transport2.newInteraction();
                 // Omit setting the desired capability to test strong detection
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/MixedPolicy.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/MixedPolicy.java
index 48b71a7..11e0aae 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/MixedPolicy.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/MixedPolicy.java
@@ -28,33 +28,23 @@ import static org.apache.qpid.tests.protocol.v1_0.extensions.soleconn.SoleConnec
 import static org.apache.qpid.tests.protocol.v1_0.extensions.soleconn.SoleConnectionAsserts.assumeEnforcementPolicyRefuse;
 import static org.apache.qpid.tests.protocol.v1_0.extensions.soleconn.SoleConnectionAsserts.assumeSoleConnectionCapability;
 
-import java.net.InetSocketAddress;
 import java.util.Collections;
 
-import org.junit.Before;
 import org.junit.Test;
 
 import org.apache.qpid.server.protocol.v1_0.type.transport.Close;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
 import org.apache.qpid.tests.protocol.v1_0.Interaction;
-import org.apache.qpid.tests.utils.BrokerAdmin;
 import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
 
 public class MixedPolicy extends BrokerAdminUsingTestBase
 {
-    private InetSocketAddress _brokerAddress;
-
-    @Before
-    public void setUp()
-    {
-        _brokerAddress = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-    }
 
     @Test
     public void firstCloseThenRefuse() throws Exception
     {
-        try (FrameTransport transport1 = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport1 = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction1 = transport1.newInteraction();
             interaction1.openContainerId("testContainerId")
@@ -67,7 +57,7 @@ public class MixedPolicy extends BrokerAdminUsingTestBase
             assumeSoleConnectionCapability(responseOpen);
             assumeEnforcementPolicyCloseExisting(responseOpen);
 
-            try (FrameTransport transport2 = new FrameTransport(_brokerAddress).connect())
+            try (FrameTransport transport2 = new FrameTransport(getBrokerAdmin()).connect())
             {
                 final Interaction interaction2 = transport2.newInteraction();
                 interaction2.openContainerId("testContainerId")
@@ -80,7 +70,7 @@ public class MixedPolicy extends BrokerAdminUsingTestBase
 
                 interaction2.consumeResponse(Open.class);
 
-                try (FrameTransport transport3 = new FrameTransport(_brokerAddress).connect())
+                try (FrameTransport transport3 = new FrameTransport(getBrokerAdmin()).connect())
                 {
                     final Interaction interaction3 = transport3.newInteraction();
                     interaction3.openContainerId("testContainerId")
@@ -97,7 +87,7 @@ public class MixedPolicy extends BrokerAdminUsingTestBase
     @Test
     public void firstRefuseThenClose() throws Exception
     {
-        try (FrameTransport transport1 = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport1 = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction1 = transport1.newInteraction();
             interaction1.openContainerId("testContainerId")
@@ -110,7 +100,7 @@ public class MixedPolicy extends BrokerAdminUsingTestBase
             assumeSoleConnectionCapability(responseOpen);
             assumeEnforcementPolicyRefuse(responseOpen);
 
-            try (FrameTransport transport2 = new FrameTransport(_brokerAddress).connect())
+            try (FrameTransport transport2 = new FrameTransport(getBrokerAdmin()).connect())
             {
                 final Interaction interaction2 = transport2.newInteraction();
                 interaction2.openContainerId("testContainerId")
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/RefuseConnectionPolicy.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/RefuseConnectionPolicy.java
index 5ea0e38..58fcf1c 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/RefuseConnectionPolicy.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/RefuseConnectionPolicy.java
@@ -33,10 +33,8 @@ import static org.apache.qpid.tests.protocol.v1_0.extensions.soleconn.SoleConnec
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.in;
 
-import java.net.InetSocketAddress;
 import java.util.Collections;
 
-import org.junit.Before;
 import org.junit.Test;
 
 import org.apache.qpid.server.protocol.v1_0.type.UnsignedInteger;
@@ -45,23 +43,15 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Close;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
 import org.apache.qpid.tests.protocol.v1_0.Interaction;
-import org.apache.qpid.tests.utils.BrokerAdmin;
 import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
 
 public class RefuseConnectionPolicy extends BrokerAdminUsingTestBase
 {
-    private InetSocketAddress _brokerAddress;
-
-    @Before
-    public void setUp()
-    {
-        _brokerAddress = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-    }
 
     @Test
     public void basicNegotiation() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect();)
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             final Open responseOpen = interaction.openContainerId("testContainerId")
@@ -87,7 +77,7 @@ public class RefuseConnectionPolicy extends BrokerAdminUsingTestBase
     @Test
     public void newConnectionRefused() throws Exception
     {
-        try (FrameTransport transport1 = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport1 = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction1 = transport1.newInteraction();
             interaction1.openContainerId("testContainerId")
@@ -100,7 +90,7 @@ public class RefuseConnectionPolicy extends BrokerAdminUsingTestBase
             assumeSoleConnectionCapability(responseOpen);
             assumeEnforcementPolicyRefuse(responseOpen);
 
-            try (FrameTransport transport2 = new FrameTransport(_brokerAddress).connect())
+            try (FrameTransport transport2 = new FrameTransport(getBrokerAdmin()).connect())
             {
                 final Interaction interaction2 = transport2.newInteraction();
                 final Open responseOpen2 = interaction2.openContainerId("testContainerId")
@@ -121,7 +111,7 @@ public class RefuseConnectionPolicy extends BrokerAdminUsingTestBase
     @Test
     public void strongDetectionWhenConnectionWithoutSoleConnectionCapabilityOpened() throws Exception
     {
-        try (FrameTransport transport1 = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport1 = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction1 = transport1.newInteraction();
             // Omit setting the desired capability to test weak detection
@@ -132,7 +122,7 @@ public class RefuseConnectionPolicy extends BrokerAdminUsingTestBase
             assumeSoleConnectionCapability(responseOpen);
             assumeDetectionPolicyStrong(responseOpen);
 
-            try (FrameTransport transport2 = new FrameTransport(_brokerAddress).connect())
+            try (FrameTransport transport2 = new FrameTransport(getBrokerAdmin()).connect())
             {
                 final Interaction interaction2 = transport2.newInteraction();
                 final Open responseOpen2 = interaction2.openContainerId("testContainerId")
@@ -152,7 +142,7 @@ public class RefuseConnectionPolicy extends BrokerAdminUsingTestBase
     @Test
     public void strongDetection() throws Exception
     {
-        try (FrameTransport transport1 = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport1 = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction1 = transport1.newInteraction();
             final Open responseOpen = interaction1.openContainerId("testContainerId")
@@ -167,7 +157,7 @@ public class RefuseConnectionPolicy extends BrokerAdminUsingTestBase
             assumeEnforcementPolicyRefuse(responseOpen);
             assumeDetectionPolicyStrong(responseOpen);
 
-            try (FrameTransport transport2 = new FrameTransport(_brokerAddress).connect())
+            try (FrameTransport transport2 = new FrameTransport(getBrokerAdmin()).connect())
             {
                 final Interaction interaction2 = transport2.newInteraction();
                 // Omit setting the desired capability to test strong detection
@@ -184,7 +174,7 @@ public class RefuseConnectionPolicy extends BrokerAdminUsingTestBase
     @Test
     public void refuseIsDefault() throws Exception
     {
-        try (FrameTransport transport1 = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport1 = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction1 = transport1.newInteraction();
             // Omit setting the enforcement policy explicitly. The default is refuse.
@@ -196,7 +186,7 @@ public class RefuseConnectionPolicy extends BrokerAdminUsingTestBase
             assumeSoleConnectionCapability(responseOpen);
             assumeEnforcementPolicyRefuse(responseOpen);
 
-            try (FrameTransport transport2 = new FrameTransport(_brokerAddress).connect())
+            try (FrameTransport transport2 = new FrameTransport(getBrokerAdmin()).connect())
             {
                 final Interaction interaction2 = transport2.newInteraction();
                 // Omit setting the enforcement policy explicitly. The default is refuse.
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/websocket/WebSocketTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/websocket/WebSocketTest.java
index e7e9aed..6e913c9 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/websocket/WebSocketTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/websocket/WebSocketTest.java
@@ -30,9 +30,6 @@ import static org.hamcrest.Matchers.notNullValue;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assume.assumeThat;
 
-import java.net.InetSocketAddress;
-import java.nio.charset.StandardCharsets;
-
 import org.junit.Before;
 import org.junit.Test;
 
@@ -42,28 +39,26 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.tests.protocol.SpecificationTest;
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
 import org.apache.qpid.tests.protocol.v1_0.Interaction;
-import org.apache.qpid.tests.utils.BrokerAdmin;
 import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
 
 public class WebSocketTest extends BrokerAdminUsingTestBase
 {
-    public static final byte[] AMQP_HEADER = "AMQP\0\1\0\0".getBytes(StandardCharsets.UTF_8);
 
     @Before
     public void setUp()
     {
         assumeThat("Broker support for AMQP over websockets is required", getBrokerAdmin().isWebSocketSupported(), is(true));
+        assumeThat("Broker support for Anonymous open is required", getBrokerAdmin().isAnonymousSupported(), is(true));
     }
 
     @Test
     @SpecificationTest(section = "2.1", description = "Opening a WebSocket Connection")
     public void protocolHeader() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQPWS);
-        try (FrameTransport transport = new WebSocketFrameTransport(addr).connect())
+        try (FrameTransport transport = new WebSocketFrameTransport(getBrokerAdmin()).connect())
         {
             final byte[] response = transport.newInteraction().negotiateProtocol().consumeResponse().getLatestResponse(byte[].class);
-            assertArrayEquals("Unexpected protocol header response", AMQP_HEADER, response);
+            assertArrayEquals("Unexpected protocol header response", transport.getProtocolHeader(), response);
         }
     }
 
@@ -71,8 +66,7 @@ public class WebSocketTest extends BrokerAdminUsingTestBase
     @SpecificationTest(section = "2.4", description = "[...] a single AMQP frame MAY be split over one or more consecutive WebSocket messages. ")
     public void amqpFramesSplitOverManyWebSocketFrames() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQPWS);
-        try (FrameTransport transport = new WebSocketFrameTransport(addr).splitAmqpFrames().connect())
+        try (FrameTransport transport = new WebSocketFrameTransport(getBrokerAdmin()).splitAmqpFrames().connect())
         {
             Interaction interaction = transport.newInteraction();
             final Open responseOpen = interaction
@@ -95,8 +89,7 @@ public class WebSocketTest extends BrokerAdminUsingTestBase
     {
         assumeThat(getBrokerAdmin().isWebSocketSupported(), is(true));
 
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQPWS);
-        try (FrameTransport transport = new WebSocketFrameTransport(addr).connect())
+        try (FrameTransport transport = new WebSocketFrameTransport(getBrokerAdmin()).connect())
         {
             Interaction interaction = transport.newInteraction();
             final Open responseOpen = interaction
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/DeleteOnCloseTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/DeleteOnCloseTest.java
index 01534ee..4bd9d23 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/DeleteOnCloseTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/DeleteOnCloseTest.java
@@ -26,12 +26,10 @@ import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.is;
 import static org.junit.Assume.assumeThat;
 
-import java.net.InetSocketAddress;
 import java.util.Collections;
 import java.util.concurrent.TimeUnit;
 
 import com.google.common.util.concurrent.ListenableFuture;
-import org.junit.Before;
 import org.junit.Test;
 
 import org.apache.qpid.server.protocol.v1_0.Session_1_0;
@@ -44,7 +42,6 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Begin;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Detach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
-
 import org.apache.qpid.tests.protocol.Response;
 import org.apache.qpid.tests.protocol.SpecificationTest;
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
@@ -55,13 +52,6 @@ import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
 
 public class DeleteOnCloseTest extends BrokerAdminUsingTestBase
 {
-    private InetSocketAddress _brokerAddress;
-
-    @Before
-    public void setUp()
-    {
-        _brokerAddress = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-    }
 
     @Test
     @SpecificationTest(section = "3.5.10",
@@ -69,7 +59,7 @@ public class DeleteOnCloseTest extends BrokerAdminUsingTestBase
                           + "creation ceases to exist.")
     public void deleteOnCloseOnSource() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Source source = new Source();
             source.setDynamicNodeProperties(Collections.singletonMap(Session_1_0.LIFETIME_POLICY, new DeleteOnClose()));
@@ -87,14 +77,14 @@ public class DeleteOnCloseTest extends BrokerAdminUsingTestBase
 
             try
             {
-                assertThat(Utils.doesNodeExist(_brokerAddress, newTempQueueAddress), is(true));
+                assertThat(Utils.doesNodeExist(getBrokerAdmin(), newTempQueueAddress), is(true));
             }
             finally
             {
                 interaction.detachClose(true).detach().consumeResponse().getLatestResponse(Detach.class);
             }
 
-            assertThat(Utils.doesNodeExist(_brokerAddress, newTempQueueAddress), is(false));
+            assertThat(Utils.doesNodeExist(getBrokerAdmin(), newTempQueueAddress), is(false));
         }
     }
 
@@ -104,7 +94,7 @@ public class DeleteOnCloseTest extends BrokerAdminUsingTestBase
                           + "creation ceases to exist.")
     public void deleteOnCloseOnTarget() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Target target = new Target();
             target.setDynamicNodeProperties(Collections.singletonMap(Session_1_0.LIFETIME_POLICY, new DeleteOnClose()));
@@ -120,19 +110,19 @@ public class DeleteOnCloseTest extends BrokerAdminUsingTestBase
             assertThat(attachResponse.getTarget(), is(notNullValue()));
             final String newTempQueueAddress = ((Target) attachResponse.getTarget()).getAddress();
 
-            assertThat(Utils.doesNodeExist(_brokerAddress, newTempQueueAddress), is(true));
+            assertThat(Utils.doesNodeExist(getBrokerAdmin(), newTempQueueAddress), is(true));
 
             interaction.consumeResponse().getLatestResponse(Flow.class);
             try
             {
-                assertThat(Utils.doesNodeExist(_brokerAddress, newTempQueueAddress), is(true));
+                assertThat(Utils.doesNodeExist(getBrokerAdmin(), newTempQueueAddress), is(true));
             }
             finally
             {
                 interaction.detachClose(true).detach().consumeResponse().getLatestResponse(Detach.class);
             }
 
-            assertThat(Utils.doesNodeExist(_brokerAddress, newTempQueueAddress), is(false));
+            assertThat(Utils.doesNodeExist(getBrokerAdmin(), newTempQueueAddress), is(false));
         }
     }
 
@@ -142,7 +132,7 @@ public class DeleteOnCloseTest extends BrokerAdminUsingTestBase
                           + "creation ceases to exist.")
     public void doesNotDeleteOnDetach() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Source source = new Source();
             source.setDynamicNodeProperties(Collections.singletonMap(Session_1_0.LIFETIME_POLICY, new DeleteOnClose()));
@@ -160,14 +150,14 @@ public class DeleteOnCloseTest extends BrokerAdminUsingTestBase
 
             try
             {
-                assertThat(Utils.doesNodeExist(_brokerAddress, newTempQueueAddress), is(true));
+                assertThat(Utils.doesNodeExist(getBrokerAdmin(), newTempQueueAddress), is(true));
             }
             finally
             {
                 interaction.detach().consumeResponse().getLatestResponse(Detach.class);
             }
 
-            assertThat(Utils.doesNodeExist(_brokerAddress, newTempQueueAddress), is(true));
+            assertThat(Utils.doesNodeExist(getBrokerAdmin(), newTempQueueAddress), is(true));
 
             interaction.attach()
                        .consumeResponse(Attach.class)
@@ -175,7 +165,7 @@ public class DeleteOnCloseTest extends BrokerAdminUsingTestBase
                        .detach()
                        .consumeResponse()
                        .getLatestResponse(Detach.class);
-            assertThat(Utils.doesNodeExist(_brokerAddress, newTempQueueAddress), is(false));
+            assertThat(Utils.doesNodeExist(getBrokerAdmin(), newTempQueueAddress), is(false));
         }
     }
 
@@ -185,7 +175,7 @@ public class DeleteOnCloseTest extends BrokerAdminUsingTestBase
         assumeThat(getBrokerAdmin().supportsRestart(), is(true));
 
         final String newTempQueueAddress;
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Source source = new Source();
             source.setDynamicNodeProperties(Collections.singletonMap(Session_1_0.LIFETIME_POLICY, new DeleteOnClose()));
@@ -202,14 +192,12 @@ public class DeleteOnCloseTest extends BrokerAdminUsingTestBase
             assertThat(attachResponse.getSource(), is(notNullValue()));
             newTempQueueAddress = ((Source) attachResponse.getSource()).getAddress();
 
-            assertThat(Utils.doesNodeExist(_brokerAddress, newTempQueueAddress), is(true));
+            assertThat(Utils.doesNodeExist(getBrokerAdmin(), newTempQueueAddress), is(true));
         }
 
         final ListenableFuture<Void> restart = getBrokerAdmin().restart();
         restart.get(BrokerAdmin.RESTART_TIMEOUT, TimeUnit.MILLISECONDS);
-        _brokerAddress = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-
-        assertThat(Utils.doesNodeExist(_brokerAddress, newTempQueueAddress), is(true));
+        assertThat(Utils.doesNodeExist(getBrokerAdmin(), newTempQueueAddress), is(true));
     }
 
     private void assumeAttach(final Response<?> response)
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MessageFormat.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MessageFormat.java
index f92beb1..3e1850b 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MessageFormat.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MessageFormat.java
@@ -24,8 +24,6 @@ import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.is;
 
-import java.net.InetSocketAddress;
-
 import org.junit.Before;
 import org.junit.Test;
 
@@ -44,12 +42,10 @@ import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
 
 public class MessageFormat extends BrokerAdminUsingTestBase
 {
-    private InetSocketAddress _brokerAddress;
 
     @Before
     public void setUp()
     {
-        _brokerAddress = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
         getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME);
     }
 
@@ -61,7 +57,7 @@ public class MessageFormat extends BrokerAdminUsingTestBase
                           + "continuation transfer differs from the message-format on the first transfer of a delivery.")
     public void differentMessageFormatOnSameDeliveryFails() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             QpidByteBuffer[] payloads = Utils.splitPayload(getTestName(), 2);
 
@@ -94,6 +90,6 @@ public class MessageFormat extends BrokerAdminUsingTestBase
 
         final String testMessage = getTestName() + "_2";
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, testMessage);
-        assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(testMessage)));
+        assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(testMessage)));
     }
 }
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MultiTransferTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MultiTransferTest.java
index c9571df..5557eb8 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MultiTransferTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MultiTransferTest.java
@@ -27,7 +27,6 @@ import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.oneOf;
 
-import java.net.InetSocketAddress;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -54,13 +53,11 @@ import org.apache.qpid.tests.utils.ConfigItem;
 @ConfigItem(name = "qpid.tests.mms.messagestore.persistence", value = "false", jvm = true)
 public class MultiTransferTest extends BrokerAdminUsingTestBase
 {
-    private InetSocketAddress _brokerAddress;
 
     @Before
     public void setUp()
     {
         getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME);
-        _brokerAddress = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
     }
 
     @Test
@@ -70,7 +67,7 @@ public class MultiTransferTest extends BrokerAdminUsingTestBase
                           + " but the last transfer frame")
     public void multiTransferMessage() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             QpidByteBuffer[] payloads = Utils.splitPayload(getTestName(), 2);
 
@@ -106,7 +103,7 @@ public class MultiTransferTest extends BrokerAdminUsingTestBase
             assertThat(disposition.getLast(), oneOf(null, deliveryId));
             assertThat(disposition.getSettled(), is(equalTo(true)));
         }
-        assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
+        assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
     }
 
     @Test
@@ -116,7 +113,7 @@ public class MultiTransferTest extends BrokerAdminUsingTestBase
                           + " message and can only be omitted for continuation transfers.")
     public void multiTransferMessageOmittingOptionalTagAndID() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             QpidByteBuffer[] payloads = Utils.splitPayload(getTestName(), 4);
             final UnsignedInteger deliveryId = UnsignedInteger.ZERO;
@@ -166,7 +163,7 @@ public class MultiTransferTest extends BrokerAdminUsingTestBase
             assertThat(disposition.getSettled(), is(equalTo(true)));
             assertThat(disposition.getState(), is(instanceOf(Accepted.class)));
         }
-        assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
+        assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
     }
 
     @Test
@@ -175,7 +172,7 @@ public class MultiTransferTest extends BrokerAdminUsingTestBase
                           + "In this case the receiver MUST discard the message data that was transferred prior to the abort.")
     public void abortMultiTransferMessage() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             QpidByteBuffer[] payloads = Utils.splitPayload(getTestName(), 2);
 
@@ -209,7 +206,7 @@ public class MultiTransferTest extends BrokerAdminUsingTestBase
         }
         String secondMessage = getTestName() + "_2";
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, secondMessage);
-        assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(secondMessage)));
+        assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(secondMessage)));
     }
 
     @Test
@@ -219,7 +216,7 @@ public class MultiTransferTest extends BrokerAdminUsingTestBase
     {
         String messageContent1 = getTestName() + "_1";
         String messageContent2 = getTestName() + "_2";
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             QpidByteBuffer[] messagePayload1 = Utils.splitPayload(messageContent1, 2);
             QpidByteBuffer[] messagePayload2 = Utils.splitPayload(messageContent2, 2);
@@ -308,8 +305,8 @@ public class MultiTransferTest extends BrokerAdminUsingTestBase
             assertThat(dispositionMap.containsKey(deliverId1), is(true));
             assertThat(dispositionMap.containsKey(deliveryId2), is(true));
         }
-        assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(messageContent1)));
-        assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(messageContent2)));
+        assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(messageContent1)));
+        assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(messageContent2)));
     }
 
     @Test
@@ -324,7 +321,7 @@ public class MultiTransferTest extends BrokerAdminUsingTestBase
     {
         String messageContent1 = getTestName() + "_1";
         String messageContent2 = getTestName() + "_2";
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             QpidByteBuffer[] messagePayload1 = Utils.splitPayload(messageContent1, 2);
             QpidByteBuffer[] messagePayload2 = Utils.splitPayload(messageContent2, 2);
@@ -385,6 +382,6 @@ public class MultiTransferTest extends BrokerAdminUsingTestBase
 
         final String controlMessage = getTestName() + "_Control";
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, controlMessage);
-        assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(controlMessage)));
+        assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(controlMessage)));
     }
 }
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/OutcomeTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/OutcomeTest.java
index f65ab0e..5969dd7 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/OutcomeTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/OutcomeTest.java
@@ -24,14 +24,10 @@ import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.emptyArray;
 import static org.hamcrest.Matchers.hasItemInArray;
-import static org.hamcrest.Matchers.nullValue;
 import static org.hamcrest.Matchers.oneOf;
 import static org.junit.Assume.assumeThat;
 
-import java.net.InetSocketAddress;
-
 import org.junit.Before;
 import org.junit.Test;
 
@@ -41,7 +37,6 @@ import org.apache.qpid.server.protocol.v1_0.type.messaging.Modified;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.Source;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Attach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Begin;
-import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Disposition;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
@@ -54,13 +49,11 @@ import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
 
 public class OutcomeTest extends BrokerAdminUsingTestBase
 {
-    private InetSocketAddress _brokerAddress;
 
     @Before
     public void setUp()
     {
         getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME);
-        _brokerAddress = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
     }
 
 
@@ -73,7 +66,7 @@ public class OutcomeTest extends BrokerAdminUsingTestBase
         String content2 = getTestName() + "_2";
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, content1, content2);
 
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction()
                                                      .negotiateOpen()
@@ -114,8 +107,8 @@ public class OutcomeTest extends BrokerAdminUsingTestBase
             // verify that no unexpected performative is received by closing
             interaction.doCloseConnection();
         }
-        assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(content1)));
-        assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(content2)));
+        assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(content1)));
+        assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(content2)));
     }
 
     @Test
@@ -129,7 +122,7 @@ public class OutcomeTest extends BrokerAdminUsingTestBase
                           + " “amqp:accepted:list”.")
     public void transferMessageWithAttachSourceHavingExplicitlySetOutcomesToAccepted() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Interaction interaction = transport.newInteraction();
             Disposition disposition = interaction.negotiateOpen()
@@ -149,7 +142,7 @@ public class OutcomeTest extends BrokerAdminUsingTestBase
             assertThat(disposition.getLast(), oneOf(null, UnsignedInteger.ZERO));
             assertThat(disposition.getSettled(), is(equalTo(true)));
         }
-        assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
+        assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
     }
 
 
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/TransferTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/TransferTest.java
index 1142dfc..480263a 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/TransferTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/TransferTest.java
@@ -36,7 +36,6 @@ import static org.hamcrest.Matchers.oneOf;
 import static org.junit.Assert.fail;
 import static org.junit.Assume.assumeThat;
 
-import java.net.InetSocketAddress;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -92,13 +91,11 @@ import org.apache.qpid.tests.utils.ConfigItem;
 public class TransferTest extends BrokerAdminUsingTestBase
 {
     private static final long MAX_MAX_MESSAGE_SIZE_WE_ARE_WILLING_TO_TEST = 200 * 1024 * 1024L;
-    private InetSocketAddress _brokerAddress;
 
     @Before
     public void setUp()
     {
         getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME);
-        _brokerAddress = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
     }
 
     @Test
@@ -106,7 +103,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
             description = "mandatory [...] a non null value for the field is always encoded.")
     public void transferHandleUnspecified() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Interaction interact = transport.newInteraction();
             Response<?> response = interact.negotiateOpen()
@@ -138,7 +135,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
             description = "The delivery-id MUST be supplied on the first transfer of a multi-transfer delivery.")
     public void transferDeliveryIdUnspecified() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Interaction interact = transport.newInteraction();
             Response<?> response = interact.negotiateOpen()
@@ -170,7 +167,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
                           + "[...] and can only be omitted for continuation transfers.")
     public void transferDeliveryTagUnspecified() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Interaction interaction = transport.newInteraction()
                                                .negotiateOpen()
@@ -203,7 +200,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
                           + " rather than waiting for the sender to settle first, that yields an at-least-once guarantee.")
     public void transferUnsettled() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final UnsignedInteger linkHandle = UnsignedInteger.ONE;
             Disposition responseDisposition = transport.newInteraction()
@@ -224,7 +221,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
             assertThat(responseDisposition.getSettled(), is(Boolean.TRUE));
             assertThat(responseDisposition.getState(), is(instanceOf(Accepted.class)));
         }
-        assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
+        assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
     }
 
     @Test
@@ -234,7 +231,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
     public void transferMessagesWithTheSameDeliveryTagOnSeparateLinksBelongingToTheSameSession() throws Exception
     {
         final String[] contents = Utils.createTestMessageContents(2, getTestName());
-        try (final FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (final FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final UnsignedInteger link1Handle = UnsignedInteger.ONE;
             final UnsignedInteger link2Handle = UnsignedInteger.valueOf(2);
@@ -294,7 +291,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
                           + " it has arrived without waiting for the sender to settle first")
     public void transferReceiverSettleModeFirst() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Disposition responseDisposition = transport.newInteraction()
                                                        .negotiateOpen()
@@ -312,7 +309,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
             assertThat(responseDisposition.getSettled(), is(Boolean.TRUE));
             assertThat(responseDisposition.getState(), is(instanceOf(Accepted.class)));
         }
-        assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
+        assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
     }
 
     @Test
@@ -326,7 +323,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
                           + " If the negotiated link value is first, then it is illegal to set this field to second.")
     public void transferReceiverSettleModeCannotBeSecondWhenLinkModeIsFirst() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Response<?> response = transport.newInteraction()
                                      .negotiateOpen()
@@ -359,7 +356,8 @@ public class TransferTest extends BrokerAdminUsingTestBase
     @SpecificationTest(section = "2.6.12 Transferring A Message", description = "Pipelined message send")
     public void presettledPipelined() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        assumeThat(getBrokerAdmin().isAnonymousSupported(), equalTo(true));
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             interaction.negotiateProtocol()
@@ -383,7 +381,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
             interaction.consumeResponse().getLatestResponse(Flow.class);
             interaction.consumeResponse().getLatestResponse(Close.class);
         }
-        assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
+        assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
     }
 
     @Test
@@ -396,7 +394,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
     @BrokerSpecific(kind = BrokerAdmin.KIND_BROKER_J)
     public void durableTransferWithRejectedOutcome() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             MessageEncoder messageEncoder = new MessageEncoder();
             final Header header = new Header();
@@ -443,7 +441,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
     @BrokerSpecific(kind = BrokerAdmin.KIND_BROKER_J)
     public void durableTransferWithoutRejectedOutcome() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             MessageEncoder messageEncoder = new MessageEncoder();
             final Header header = new Header();
@@ -492,7 +490,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
     {
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, getTestName());
 
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction()
                                                      .negotiateOpen()
@@ -521,7 +519,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
             Object data = messageDecoder.getData();
             assertThat(data, is(equalTo(getTestName())));
         }
-        assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
+        assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
     }
 
     @Test
@@ -530,7 +528,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
     {
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, getTestName());
 
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction()
                                                      .negotiateOpen()
@@ -565,7 +563,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
     @SpecificationTest(section = "2.6.12", description = "Transferring A Message.")
     public void receiveTransferReceiverSettleSecond() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction()
                                                      .negotiateOpen()
@@ -611,7 +609,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
     @SpecificationTest(section = "2.6.12", description = "Transferring A Message.")
     public void receiveTransferReceiverSettleSecondWithRejectedOutcome() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction()
                                                      .negotiateOpen()
@@ -658,7 +656,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
                        .disposition();
 
         }
-        assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
+        assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
     }
 
     @Ignore
@@ -668,7 +666,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
     {
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, getTestName());
 
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction()
                                                      .negotiateOpen()
@@ -704,7 +702,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
             interaction.consumeResponse(null, Flow.class);
 
         }
-        assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
+        assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
     }
 
     @Test
@@ -712,13 +710,12 @@ public class TransferTest extends BrokerAdminUsingTestBase
                                                          + " non-terminal delivery states to the sender")
     public void receiveTransferReceiverIndicatesNonTerminalDeliveryState() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
 
-            Open open = interaction.negotiateProtocol().consumeResponse()
-                                   .openMaxFrameSize(UnsignedInteger.valueOf(4096))
-                                   .open().consumeResponse()
+            Open open = interaction.openMaxFrameSize(UnsignedInteger.valueOf(4096))
+                                   .negotiateOpen()
                                    .getLatestResponse(Open.class);
             interaction.begin().consumeResponse()
                        .attachRole(Role.RECEIVER)
@@ -785,7 +782,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
     {
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, getTestName());
 
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction()
                                                      .negotiateOpen()
@@ -815,7 +812,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
         }
 
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, "test");
-        assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo("test")));
+        assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), is(equalTo("test")));
     }
 
     @Test
@@ -825,7 +822,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
     public void transfersWithDuplicateUnsettledDeliveryTag() throws Exception
     {
         String content1 = getTestName() + "_1";
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Binary deliveryTag = new Binary("testDeliveryTag".getBytes(UTF_8));
 
@@ -886,7 +883,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
     public void deliveryTagCanBeReusedAfterDeliveryIsSettled() throws Exception
     {
         final String[] contents = Utils.createTestMessageContents(2, getTestName());
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Binary deliveryTag = new Binary("testDeliveryTag".getBytes(UTF_8));
 
@@ -927,7 +924,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
                           + " size imposed by the link endpoint.")
     public void exceedMaxMessageSizeLimit() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Binary deliveryTag = new Binary("testDeliveryTag".getBytes(UTF_8));
 
@@ -995,7 +992,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
     public void transferMultipleDeliveries() throws Exception
     {
         final String[] contents = Utils.createTestMessageContents(3, getTestName());
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction()
                                                      .negotiateOpen()
@@ -1037,7 +1034,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
     public void transferMixtureOfTransactionalAndNonTransactionalDeliveries() throws Exception
     {
         final String[] contents = Utils.createTestMessageContents(3, getTestName());
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction().negotiateOpen()
                                                      .begin().consumeResponse(Begin.class)
@@ -1084,7 +1081,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
         final String[] contents = Utils.createTestMessageContents(numberOfMessages, getTestName());
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, contents);
 
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction()
                                                      .negotiateOpen()
@@ -1124,7 +1121,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
 
         final String messageText = getTestName() + "_" + 4;
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, messageText);
-        Object receivedMessage = Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME);
+        Object receivedMessage = Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME);
         assertThat(receivedMessage, is(equalTo(messageText)));
     }
 
@@ -1135,7 +1132,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
         final int numberOfMessages = 4;
         final String[] contents = Utils.createTestMessageContents(numberOfMessages, getTestName());
 
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction()
                                                      .negotiateOpen()
@@ -1185,7 +1182,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
 
         String messageText = getTestName() + "_" + 4;
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, messageText);
-        Object receivedMessage = Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME);
+        Object receivedMessage = Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME);
         assertThat(receivedMessage, is(equalTo(messageText)));
     }
 
@@ -1221,7 +1218,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
     {
         for (final String content : contents)
         {
-            assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(content)));
+            assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(content)));
         }
     }
 
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/DischargeTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/DischargeTest.java
index 3fecc02..1c56b77 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/DischargeTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/DischargeTest.java
@@ -21,7 +21,6 @@
 package org.apache.qpid.tests.protocol.v1_0.transaction;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
-import static org.apache.qpid.tests.utils.BrokerAdmin.KIND_BROKER_J;
 import static org.hamcrest.CoreMatchers.anyOf;
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.not;
@@ -32,7 +31,6 @@ import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.is;
 import static org.junit.Assume.assumeThat;
 
-import java.net.InetSocketAddress;
 import java.util.List;
 
 import org.junit.Before;
@@ -63,13 +61,11 @@ import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
 
 public class DischargeTest extends BrokerAdminUsingTestBase
 {
-    private InetSocketAddress _brokerAddress;
 
     @Before
     public void setUp()
     {
         getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME);
-        _brokerAddress = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
     }
 
     @Test
@@ -80,7 +76,7 @@ public class DischargeTest extends BrokerAdminUsingTestBase
                           + " message MUST be rejected with this outcome carrying the transaction-error.")
     public void dischargeUnknownTransactionIdWhenSourceSupportsRejectedOutcome() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             interaction.negotiateOpen()
@@ -112,7 +108,7 @@ public class DischargeTest extends BrokerAdminUsingTestBase
                           + " the transaction-error.")
     public void dischargeUnknownTransactionIdWhenSourceDoesNotSupportRejectedOutcome() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             interaction.negotiateOpen()
@@ -143,7 +139,7 @@ public class DischargeTest extends BrokerAdminUsingTestBase
                           + " desired transaction identifier and the outcome to be applied upon a successful discharge.")
     public void dischargeSettledAfterReceiverDetach() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             interaction.negotiateOpen()
@@ -185,7 +181,7 @@ public class DischargeTest extends BrokerAdminUsingTestBase
 
         String secondMessage = getTestName() + "_2";
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, secondMessage);
-        Object receivedMessage = Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME);
+        Object receivedMessage = Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME);
         assertThat(receivedMessage, is(equalTo(secondMessage)));
     }
 
@@ -200,7 +196,7 @@ public class DischargeTest extends BrokerAdminUsingTestBase
                           + " was associated.")
     public void dischargeSettledAfterSenderDetach() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             interaction.negotiateOpen()
@@ -228,7 +224,7 @@ public class DischargeTest extends BrokerAdminUsingTestBase
             assertThat(interaction.getCoordinatorLatestDeliveryState(), is(instanceOf(Accepted.class)));
         }
 
-        final Object receivedMessage = Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME);
+        final Object receivedMessage = Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME);
         assertThat(receivedMessage, is(equalTo(getTestName())));
     }
 
@@ -240,7 +236,7 @@ public class DischargeTest extends BrokerAdminUsingTestBase
                           + " reflect the outcome that was applied.")
     public void dischargeUnsettledAfterSenderClose() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             interaction.negotiateOpen()
@@ -273,7 +269,7 @@ public class DischargeTest extends BrokerAdminUsingTestBase
             assertThat(interaction.getCoordinatorLatestDeliveryState(), is(instanceOf(Accepted.class)));
         }
 
-        final Object receivedMessage = Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME);
+        final Object receivedMessage = Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME);
         assertThat(receivedMessage, is(equalTo(getTestName())));
     }
 
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/TransactionalTransferTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/TransactionalTransferTest.java
index d215d91..e708da5 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/TransactionalTransferTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/TransactionalTransferTest.java
@@ -26,14 +26,11 @@ import static org.hamcrest.CoreMatchers.notNullValue;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.is;
-import static org.junit.Assert.fail;
 import static org.junit.Assume.assumeThat;
 
-import java.net.InetSocketAddress;
 import java.util.Collections;
 import java.util.List;
 
-import org.hamcrest.Matchers;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
@@ -47,10 +44,7 @@ import org.apache.qpid.server.protocol.v1_0.type.transaction.TransactionError;
 import org.apache.qpid.server.protocol.v1_0.type.transaction.TransactionalState;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Attach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Begin;
-import org.apache.qpid.server.protocol.v1_0.type.transport.Close;
-import org.apache.qpid.server.protocol.v1_0.type.transport.Detach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Disposition;
-import org.apache.qpid.server.protocol.v1_0.type.transport.End;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Error;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
 import org.apache.qpid.server.protocol.v1_0.type.transport.ReceiverSettleMode;
@@ -66,13 +60,11 @@ import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
 
 public class TransactionalTransferTest extends BrokerAdminUsingTestBase
 {
-    private InetSocketAddress _brokerAddress;
 
     @Before
     public void setUp()
     {
         getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME);
-        _brokerAddress = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
     }
 
     @Test
@@ -82,7 +74,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
                           + "transactional-state carrying the appropriate transaction identifier.")
     public void sendTransactionalPostingReceiverSettlesFirst() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final UnsignedInteger linkHandle = UnsignedInteger.ONE;
 
@@ -116,7 +108,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
 
             assertThat(interaction.getCoordinatorLatestDeliveryState(), is(instanceOf(Accepted.class)));
         }
-        Object receivedMessage = Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME);
+        Object receivedMessage = Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME);
         assertThat(receivedMessage, is(equalTo(getTestName())));
     }
 
@@ -127,7 +119,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
                           + "transactional-state carrying the appropriate transaction identifier.")
     public void sendTransactionalPostingDischargeFail() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final UnsignedInteger linkHandle = UnsignedInteger.ONE;
 
@@ -163,7 +155,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
 
             final String content = getTestName() + "_2";
             Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, content);
-            assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(content)));
+            assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(content)));
         }
     }
 
@@ -174,7 +166,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
                           + "transactional-state carrying the appropriate transaction identifier.")
     public void sendTransactionalPostingReceiverSettlesSecond() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final UnsignedInteger linkHandle = UnsignedInteger.ONE;
 
@@ -217,7 +209,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
 
             assertThat(interaction.getCoordinatorLatestDeliveryState(), is(instanceOf(Accepted.class)));
         }
-        assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
+        assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
     }
 
     @Test
@@ -227,7 +219,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
                           + " transaction identifier.")
     public void sendTransactionalPostingTransferFailsDueToUnknownTransactionId() throws Exception
     {
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final UnsignedInteger linkHandle = UnsignedInteger.ONE;
 
@@ -265,7 +257,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
     public void receiveTransactionalRetirementReceiverSettleFirst() throws Exception
     {
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, getTestName());
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
 
@@ -312,7 +304,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
     public void receiveTransactionalRetirementDischargeFail() throws Exception
     {
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, getTestName());
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             interaction.negotiateOpen()
@@ -350,7 +342,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
 
             assertThat(interaction.getCoordinatorLatestDeliveryState(), is(instanceOf(Accepted.class)));
 
-            Object receivedMessage = Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME);
+            Object receivedMessage = Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME);
             assertThat(receivedMessage, is(equalTo(getTestName())));
         }
     }
@@ -365,7 +357,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
     public void receiveTransactionalRetirementDispositionFailsDueToUnknownTransactionId() throws Exception
     {
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, getTestName());
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             List<Transfer> transfers = interaction.negotiateOpen()
@@ -411,7 +403,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
         }
         finally
         {
-            assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
+            assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
         }
     }
 
@@ -422,7 +414,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
     public void receiveTransactionalRetirementReceiverSettleSecond() throws Exception
     {
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, getTestName());
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             interaction.negotiateOpen()
@@ -480,7 +472,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
     public void receiveTransactionalAcquisitionReceiverSettleFirst() throws Exception
     {
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, getTestName());
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             interaction.negotiateOpen()
@@ -529,7 +521,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
 
             final String content = getTestName() + "_2";
             Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, content);
-            assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(content)));
+            assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(content)));
         }
     }
 
@@ -543,7 +535,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
     public void receiveTransactionalAcquisitionDischargeFail() throws Exception
     {
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, getTestName());
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             interaction.negotiateOpen()
@@ -585,7 +577,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
 
             assertThat(interaction.getCoordinatorLatestDeliveryState(), is(instanceOf(Accepted.class)));
 
-            assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
+            assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
 
             Transfer transfer = transfers.get(0);
             assumeThat(transfer.getState(), is(instanceOf(TransactionalState.class)));
@@ -605,7 +597,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
     public void receiveTransactionalAcquisitionFlowFailsDueToUnknownTransactionId() throws Exception
     {
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, getTestName());
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             ErrorCarryingFrameBody response = interaction.negotiateOpen()
@@ -636,37 +628,10 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
         }
         finally
         {
-            assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
+            assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
         }
     }
 
-    private void assertUnknownTransactionIdError(final Response<?> response)
-    {
-        assertThat(response, is(notNullValue()));
-        final Object body = response.getBody();
-        assertThat(body, is(notNullValue()));
-        Error error = null;
-        if (body instanceof Close)
-        {
-            error = ((Close) body).getError();
-        }
-        else if (body instanceof End)
-        {
-            error = ((End) body).getError();
-        }
-        else if (body instanceof Detach)
-        {
-            error = ((Detach) body).getError();
-        }
-        else
-        {
-            fail(String.format("Unexpected response %s", body.getClass().getSimpleName()));
-        }
-
-        assertThat(error, is(notNullValue()));
-        assertThat(error.getCondition(), equalTo(TransactionError.UNKNOWN_ID));
-    }
-
     Binary integerToBinary(final int txnId)
     {
         byte[] data = new byte[4];
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/ProtocolHeaderTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/ProtocolHeaderTest.java
index bf6682f..46bbb22 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/ProtocolHeaderTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/ProtocolHeaderTest.java
@@ -22,19 +22,17 @@ package org.apache.qpid.tests.protocol.v1_0.transport;
 
 import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.not;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assume.assumeThat;
 
-import java.net.InetSocketAddress;
 import java.nio.charset.StandardCharsets;
 
 import org.junit.Test;
 
-import org.apache.qpid.tests.utils.BrokerAdmin;
+import org.apache.qpid.tests.protocol.SpecificationTest;
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
+import org.apache.qpid.tests.utils.BrokerAdmin;
 import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
-import org.apache.qpid.tests.protocol.SpecificationTest;
 
 public class ProtocolHeaderTest extends BrokerAdminUsingTestBase
 {
@@ -46,8 +44,7 @@ public class ProtocolHeaderTest extends BrokerAdminUsingTestBase
                           + "the protocol version (currently 1 (MAJOR), 0 (MINOR), 0 (REVISION)).")
     public void successfulHeaderExchange() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin(), BrokerAdmin.PortType.ANONYMOUS_AMQP).connect())
         {
             byte[] protocolHeader = "AMQP\0\1\0\0".getBytes(StandardCharsets.UTF_8);
             final byte[] response = transport.newInteraction()
@@ -66,8 +63,7 @@ public class ProtocolHeaderTest extends BrokerAdminUsingTestBase
     public void unacceptableProtocolIdSent_SaslAcceptable() throws Exception
     {
         assumeThat(getBrokerAdmin().isSASLSupported(), is(equalTo(true)));
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin(), BrokerAdmin.PortType.AMQP).connect())
         {
 
             byte[] rawHeaderBytes = "AMQP\0\1\0\0".getBytes(StandardCharsets.UTF_8);
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/connection/IdleTimeoutTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/connection/IdleTimeoutTest.java
index d024cab..2eed51a 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/connection/IdleTimeoutTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/connection/IdleTimeoutTest.java
@@ -25,8 +25,6 @@ import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.is;
 
-import java.net.InetSocketAddress;
-
 import org.junit.Test;
 
 import org.apache.qpid.server.model.port.AmqpPort;
@@ -54,8 +52,7 @@ public class IdleTimeoutTest extends BrokerAdminUsingTestBase
                           + "gracefully close the connection using a close frame with an error explaining why.")
     public void brokerClosesIdleConnection() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Interaction interaction = transport.newInteraction();
             Open responseOpen = interaction
@@ -74,8 +71,7 @@ public class IdleTimeoutTest extends BrokerAdminUsingTestBase
                           + "nothing to send, it MAY send an empty frame.")
     public void idleLine() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Interaction interaction = transport.newInteraction();
             Open responseOpen = interaction
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/connection/OpenTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/connection/OpenTest.java
index b607ca5..d2f6852 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/connection/OpenTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/connection/OpenTest.java
@@ -33,8 +33,6 @@ import static org.hamcrest.Matchers.lessThanOrEqualTo;
 import static org.hamcrest.Matchers.notNullValue;
 import static org.junit.Assume.assumeThat;
 
-import java.net.InetSocketAddress;
-
 import org.junit.Test;
 
 import org.apache.qpid.server.protocol.v1_0.type.UnsignedInteger;
@@ -44,24 +42,24 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Close;
 import org.apache.qpid.server.protocol.v1_0.type.transport.ConnectionError;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Error;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
-import org.apache.qpid.tests.utils.BrokerAdmin;
+import org.apache.qpid.tests.protocol.SpecificationTest;
+import org.apache.qpid.tests.protocol.v1_0.EmptyResponse;
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
 import org.apache.qpid.tests.protocol.v1_0.Interaction;
-import org.apache.qpid.tests.protocol.v1_0.EmptyResponse;
+import org.apache.qpid.tests.utils.BrokerAdmin;
 import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
-import org.apache.qpid.tests.protocol.SpecificationTest;
 import org.apache.qpid.tests.utils.BrokerSpecific;
 
 
 public class OpenTest extends BrokerAdminUsingTestBase
 {
+
     @Test
     @SpecificationTest(section = "1.3.4",
             description = "Open without mandatory fields should result in a decoding error.")
     public void emptyOpen() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             Open responseOpen = interaction.openContainerId(null)
@@ -87,8 +85,7 @@ public class OpenTest extends BrokerAdminUsingTestBase
                           + "including the maximum frame size.")
     public void successfulOpen() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Interaction interaction = transport.newInteraction();
             final Open responseOpen = interaction.openContainerId("testContainerId")
@@ -112,8 +109,7 @@ public class OpenTest extends BrokerAdminUsingTestBase
             description = "Implementations MUST be prepared to handle empty frames arriving on any valid channel")
     public void emptyFrame() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Interaction interaction = transport.newInteraction();
             interaction.openContainerId("testContainerId")
@@ -128,8 +124,7 @@ public class OpenTest extends BrokerAdminUsingTestBase
             description = "Connections are subject to an idle timeout threshold.")
     public void idleTimeout() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Interaction interaction = transport.newInteraction();
             final int idleTimeOut = 1000;
@@ -156,8 +151,7 @@ public class OpenTest extends BrokerAdminUsingTestBase
                           + " outside the supported range MUST close the connection with the framing-error error-code.")
     public void failOpenOnChannelNotZero() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             Open responseOpen = interaction.openContainerId("testContainerId")
@@ -183,8 +177,7 @@ public class OpenTest extends BrokerAdminUsingTestBase
     @BrokerSpecific(kind = BrokerAdmin.KIND_BROKER_J)
     public void failOpenOnNonExistingHostname() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             Open responseOpen = interaction.openContainerId("testContainerId")
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/AttachTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/AttachTest.java
index b79fc3a..cac9ecd 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/AttachTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/AttachTest.java
@@ -30,8 +30,6 @@ import static org.hamcrest.Matchers.lessThan;
 import static org.hamcrest.Matchers.notNullValue;
 import static org.hamcrest.Matchers.nullValue;
 
-import java.net.InetSocketAddress;
-
 import org.junit.Test;
 
 import org.apache.qpid.server.protocol.v1_0.type.ErrorCarryingFrameBody;
@@ -58,8 +56,7 @@ public class AttachTest extends BrokerAdminUsingTestBase
             description = "mandatory [...] a non null value for the field is always encoded.")
     public void emptyAttach() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Response<?> response = transport.newInteraction()
                                                   .negotiateOpen()
@@ -87,8 +84,7 @@ public class AttachTest extends BrokerAdminUsingTestBase
     public void successfulAttachAsSender() throws Exception
     {
         getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME);
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Attach responseAttach = transport.newInteraction()
                                                    .negotiateOpen()
@@ -114,8 +110,7 @@ public class AttachTest extends BrokerAdminUsingTestBase
     {
         String queueName = BrokerAdmin.TEST_QUEUE_NAME;
         getBrokerAdmin().createQueue(queueName);
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Attach responseAttach = transport.newInteraction()
                                                    .negotiateOpen()
@@ -142,8 +137,7 @@ public class AttachTest extends BrokerAdminUsingTestBase
     {
         String queueName = BrokerAdmin.TEST_QUEUE_NAME;
         getBrokerAdmin().createQueue(queueName);
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Interaction interaction = transport.newInteraction();
             final Attach responseAttach = interaction.negotiateOpen()
@@ -184,8 +178,7 @@ public class AttachTest extends BrokerAdminUsingTestBase
     {
         String queueName = "testQueue";
         getBrokerAdmin().createQueue(queueName);
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Interaction interaction = transport.newInteraction();
             final Attach responseAttach = interaction.negotiateOpen()
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/FlowTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/FlowTest.java
index 5c62b85..9539324 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/FlowTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/FlowTest.java
@@ -29,8 +29,6 @@ import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.Is.is;
 import static org.hamcrest.core.IsNot.not;
 
-import java.net.InetSocketAddress;
-
 import org.junit.Test;
 
 import org.apache.qpid.server.protocol.v1_0.type.ErrorCarryingFrameBody;
@@ -55,14 +53,14 @@ import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
 
 public class FlowTest extends BrokerAdminUsingTestBase
 {
+
     @Test
     @SpecificationTest(section = "1.3.4",
             description = "mandatory [...] a non null value for the field is always encoded.")
     public void emptyFlow() throws Exception
     {
         getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME);
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Response<?> response = transport.newInteraction()
                                                   .negotiateOpen()
@@ -89,8 +87,7 @@ public class FlowTest extends BrokerAdminUsingTestBase
             description = "If set to true then the receiver SHOULD send its state at the earliest convenient opportunity.")
     public void sessionEchoFlow() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Flow responseFlow = transport.newInteraction()
                                          .negotiateOpen()
@@ -116,8 +113,7 @@ public class FlowTest extends BrokerAdminUsingTestBase
     public void linkEchoFlow() throws Exception
     {
         getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME);
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Flow responseFlow = transport.newInteraction()
                                          .negotiateOpen()
@@ -148,9 +144,7 @@ public class FlowTest extends BrokerAdminUsingTestBase
     {
         getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME);
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, getTestName());
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             interaction.negotiateOpen()
@@ -187,8 +181,7 @@ public class FlowTest extends BrokerAdminUsingTestBase
     public void drainEmptyQueue() throws Exception
     {
         getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME);
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Flow responseFlow = transport.newInteraction()
                                          .negotiateOpen()
@@ -218,8 +211,7 @@ public class FlowTest extends BrokerAdminUsingTestBase
                           + " MUST respond by ending the session with an unattached-handle session error.")
     public void flowWithUnknownHandle() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             End responseEnd = transport.newInteraction()
                                        .negotiateOpen()
@@ -249,8 +241,7 @@ public class FlowTest extends BrokerAdminUsingTestBase
     public void synchronousGetWithTimeoutEmptyQueue() throws Exception
     {
         getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME);
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Interaction interaction = transport.newInteraction()
                                                .negotiateOpen()
@@ -303,8 +294,7 @@ public class FlowTest extends BrokerAdminUsingTestBase
         BrokerAdmin brokerAdmin = getBrokerAdmin();
         brokerAdmin.createQueue(BrokerAdmin.TEST_QUEUE_NAME);
 
-        final InetSocketAddress addr = brokerAdmin.getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Interaction interaction = transport.newInteraction()
                                                .negotiateOpen()
@@ -374,8 +364,7 @@ public class FlowTest extends BrokerAdminUsingTestBase
         final String[] contents = Utils.createTestMessageContents(3, getTestName());
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, contents);
 
-        final InetSocketAddress addr = brokerAdmin.getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Interaction interaction = transport.newInteraction()
                                                .negotiateOpen()
@@ -426,7 +415,7 @@ public class FlowTest extends BrokerAdminUsingTestBase
             // detach link and consume detach to verify that no transfer was delivered
             interaction.detachClose(true).detach().consume(Detach.class, Flow.class);
         }
-        assertThat(Utils.receiveMessage(addr, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(contents[2])));
+        assertThat(Utils.receiveMessage(brokerAdmin, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(contents[2])));
     }
 
     @Test
@@ -439,9 +428,8 @@ public class FlowTest extends BrokerAdminUsingTestBase
     {
         BrokerAdmin brokerAdmin = getBrokerAdmin();
         brokerAdmin.createQueue(BrokerAdmin.TEST_QUEUE_NAME);
-        final InetSocketAddress addr = brokerAdmin.getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, getTestName());
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Interaction interaction = transport.newInteraction()
                                                .negotiateOpen()
@@ -506,7 +494,7 @@ public class FlowTest extends BrokerAdminUsingTestBase
             }
             finally
             {
-                assertThat(Utils.receiveMessage(addr, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(message2)));
+                assertThat(Utils.receiveMessage(brokerAdmin, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(message2)));
 
                 interaction.dispositionSettled(true)
                            .dispositionRole(Role.RECEIVER)
@@ -530,8 +518,7 @@ public class FlowTest extends BrokerAdminUsingTestBase
         brokerAdmin.createQueue(BrokerAdmin.TEST_QUEUE_NAME);
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, getTestName());
 
-        final InetSocketAddress addr = brokerAdmin.getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             Interaction interaction = transport.newInteraction()
                                                .negotiateOpen()
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/LinkStealingTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/LinkStealingTest.java
index e4feb26..1ca6fb0 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/LinkStealingTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/LinkStealingTest.java
@@ -27,8 +27,6 @@ import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.lessThan;
 import static org.hamcrest.Matchers.notNullValue;
 
-import java.net.InetSocketAddress;
-
 import org.junit.Ignore;
 import org.junit.Test;
 
@@ -50,6 +48,7 @@ import org.apache.qpid.tests.utils.BrokerSpecific;
 
 public class LinkStealingTest extends BrokerAdminUsingTestBase
 {
+
     @Test
     @SpecificationTest(section = "2.6.1. Naming a link",
                        description = "Consequently, a link can only be active in one connection at a time."
@@ -61,8 +60,7 @@ public class LinkStealingTest extends BrokerAdminUsingTestBase
     @Ignore("QPID-8328: Broker erroneously ends the session with internal error")
     public void subsequentAttachOnTheSameSession() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             final Attach responseAttach = interaction
@@ -99,8 +97,7 @@ public class LinkStealingTest extends BrokerAdminUsingTestBase
     public void subsequentAttachOnDifferentSessions() throws Exception
     {
         getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME);
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             final String linkName = "test";
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/ResumeDeliveriesTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/ResumeDeliveriesTest.java
index 30c12ff..bc65e3e 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/ResumeDeliveriesTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/ResumeDeliveriesTest.java
@@ -36,7 +36,6 @@ import static org.junit.Assert.fail;
 import static org.junit.Assume.assumeThat;
 import static org.junit.Assume.assumeTrue;
 
-import java.net.InetSocketAddress;
 import java.nio.charset.StandardCharsets;
 import java.util.Collections;
 import java.util.HashMap;
@@ -79,13 +78,11 @@ import org.apache.qpid.tests.utils.ConfigItem;
 public class ResumeDeliveriesTest extends BrokerAdminUsingTestBase
 {
     private static final int MIN_MAX_FRAME_SIZE = 512;
-    private InetSocketAddress _brokerAddress;
 
     @Before
     public void setUp()
     {
         getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME);
-        _brokerAddress = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
     }
 
     @Ignore("QPID-7845")
@@ -98,7 +95,7 @@ public class ResumeDeliveriesTest extends BrokerAdminUsingTestBase
     {
         final String destination = BrokerAdmin.TEST_QUEUE_NAME;
         final Binary deliveryTag = new Binary("testDeliveryTag".getBytes(StandardCharsets.UTF_8));
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
 
             final UnsignedInteger linkHandle1 = UnsignedInteger.ZERO;
@@ -157,7 +154,7 @@ public class ResumeDeliveriesTest extends BrokerAdminUsingTestBase
     public void resumeSendingLinkWithIncompleteUnsettled() throws Exception
     {
         final String destination = BrokerAdmin.TEST_QUEUE_NAME;
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
 
@@ -251,7 +248,7 @@ public class ResumeDeliveriesTest extends BrokerAdminUsingTestBase
     public void rejectNewDeliveryWhilstUnsettledIncomplete() throws Exception
     {
         final String destination = BrokerAdmin.TEST_QUEUE_NAME;
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
 
@@ -337,15 +334,13 @@ public class ResumeDeliveriesTest extends BrokerAdminUsingTestBase
             Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, getTestName() + "-" + i);
         }
 
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             // 1. open with small max-frame=512, begin, attach receiver with
             //    with rcv-settle-mode=second, snd-settle-mode=unsettled,
             //    flow with incoming-window=MAX_INTEGER and link-credit=MAX_INTEGER
             final Interaction interaction = transport.newInteraction();
-            interaction.consumeResponse()
-                       .openMaxFrameSize(UnsignedInteger.valueOf(MIN_MAX_FRAME_SIZE))
+            interaction.openMaxFrameSize(UnsignedInteger.valueOf(MIN_MAX_FRAME_SIZE))
                        .negotiateOpen()
                        .begin()
                        .consumeResponse(Begin.class)
@@ -454,7 +449,7 @@ public class ResumeDeliveriesTest extends BrokerAdminUsingTestBase
     {
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, getTestName());
 
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction()
                                                      .negotiateOpen()
@@ -505,10 +500,11 @@ public class ResumeDeliveriesTest extends BrokerAdminUsingTestBase
     {
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, getTestName());
 
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction()
-                                                     .negotiateOpen()
+                                                     .negotiateOpen(
+                                                                   )
                                                      .begin().consumeResponse()
                                                      .attachRole(Role.RECEIVER)
                                                      .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -576,7 +572,7 @@ public class ResumeDeliveriesTest extends BrokerAdminUsingTestBase
 
             final String content = getTestName() + "_2";
             Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, content);
-            assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), Matchers.is(Matchers.equalTo(content)));
+            assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), Matchers.is(Matchers.equalTo(content)));
         }
     }
 
@@ -590,7 +586,7 @@ public class ResumeDeliveriesTest extends BrokerAdminUsingTestBase
     {
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, getTestName());
 
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction()
                                                      .negotiateOpen()
@@ -657,7 +653,7 @@ public class ResumeDeliveriesTest extends BrokerAdminUsingTestBase
 
             final String content = getTestName() + "_2";
             Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, content);
-            assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), Matchers.is(Matchers.equalTo(content)));
+            assertThat(Utils.receiveMessage(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME), Matchers.is(Matchers.equalTo(content)));
         }
     }
 
@@ -673,7 +669,7 @@ public class ResumeDeliveriesTest extends BrokerAdminUsingTestBase
         final Binary deliveryTag = new Binary("testDeliveryTag".getBytes(StandardCharsets.UTF_8));
 
         QpidByteBuffer[] messagePayload = Utils.splitPayload(getTestName(), 2);
-        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
 
             final UnsignedInteger linkHandle1 = UnsignedInteger.ZERO;
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/security/sasl/SaslTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/security/sasl/SaslTest.java
index eea2361..4f9a4d9 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/security/sasl/SaslTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/security/sasl/SaslTest.java
@@ -73,8 +73,7 @@ public class SaslTest extends BrokerAdminUsingTestBase
             description = "SASL Negotiation [...] challenge/response step occurs zero times")
     public void saslSuccessfulAuthentication() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.AMQP);
-        try (FrameTransport transport = new FrameTransport(addr, true).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin(), BrokerAdmin.PortType.AMQP).connect())
         {
             final Interaction interaction = transport.newInteraction();
             final byte[] saslHeaderResponse = interaction.protocolHeader(SASL_AMQP_HEADER_BYTES)
@@ -109,8 +108,7 @@ public class SaslTest extends BrokerAdminUsingTestBase
                           + " the partner’s connection header or open frame")
     public void saslSuccessfulAuthenticationWithPipelinedFrames() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.AMQP);
-        try (FrameTransport transport = new FrameTransport(addr, true).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin(), BrokerAdmin.PortType.AMQP).connect())
         {
             final Binary initialResponse =
                     new Binary(String.format("\0%s\0%s", _username, _password).getBytes(StandardCharsets.US_ASCII));
@@ -148,8 +146,7 @@ public class SaslTest extends BrokerAdminUsingTestBase
     public void saslSuccessfulAuthenticationWithChallengeResponse() throws Exception
     {
         assumeThat(getBrokerAdmin().isSASLMechanismSupported(CRAM_MD5.toString()), is(true));
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.AMQP);
-        try (FrameTransport transport = new FrameTransport(addr, true).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin(), BrokerAdmin.PortType.AMQP).connect())
         {
             final Interaction interaction = transport.newInteraction();
             final byte[] saslHeaderResponse = interaction.protocolHeader(SASL_AMQP_HEADER_BYTES)
@@ -188,8 +185,7 @@ public class SaslTest extends BrokerAdminUsingTestBase
     @SpecificationTest(section = "5.3.2", description = "SASL Negotiation")
     public void saslUnsuccessfulAuthentication() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.AMQP);
-        try (FrameTransport transport = new FrameTransport(addr, true).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin(), BrokerAdmin.PortType.AMQP).connect())
         {
             final Interaction interaction = transport.newInteraction();
             final byte[] saslHeaderResponse = interaction.protocolHeader(SASL_AMQP_HEADER_BYTES)
@@ -219,8 +215,7 @@ public class SaslTest extends BrokerAdminUsingTestBase
                           + "with the authentication-failure close-code.")
     public void unsupportedSaslMechanism() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.AMQP);
-        try (FrameTransport transport = new FrameTransport(addr, true).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin(), BrokerAdmin.PortType.AMQP).connect())
         {
             final Interaction interaction = transport.newInteraction();
             final byte[] saslHeaderResponse = interaction.protocolHeader(SASL_AMQP_HEADER_BYTES)
@@ -244,8 +239,7 @@ public class SaslTest extends BrokerAdminUsingTestBase
     @SpecificationTest(section = "5.3.2", description = "SASL Negotiation")
     public void authenticationBypassDisallowed() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.AMQP);
-        try (FrameTransport transport = new FrameTransport(addr, true).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin(), BrokerAdmin.PortType.AMQP).connect())
         {
             final Interaction interaction = transport.newInteraction();
             final byte[] saslHeaderResponse = interaction.protocolHeader(SASL_AMQP_HEADER_BYTES)
@@ -266,8 +260,7 @@ public class SaslTest extends BrokerAdminUsingTestBase
                           + "the sasl-mechanisms frame.")
     public void clientSendsSaslMechanisms() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.AMQP);
-        try (FrameTransport transport = new FrameTransport(addr, true).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin(), BrokerAdmin.PortType.AMQP).connect())
         {
             SaslMechanisms clientMechs = new SaslMechanisms();
             clientMechs.setSaslServerMechanisms(new Symbol[] {Symbol.valueOf("CLIENT-MECH")});
@@ -286,8 +279,7 @@ public class SaslTest extends BrokerAdminUsingTestBase
     @SpecificationTest(section = "5.3.2", description = "SASL Negotiation")
     public void clientSendsSaslChallenge() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.AMQP);
-        try (FrameTransport transport = new FrameTransport(addr, true).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin(), BrokerAdmin.PortType.AMQP).connect())
         {
             SaslChallenge saslChallenge = new SaslChallenge();
             saslChallenge.setChallenge(new Binary(new byte[] {}));
@@ -306,8 +298,7 @@ public class SaslTest extends BrokerAdminUsingTestBase
     @SpecificationTest(section = "5.3.2", description = "SASL Negotiation")
     public void clientSendsSaslOutcome() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.AMQP);
-        try (FrameTransport transport = new FrameTransport(addr, true).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin(), BrokerAdmin.PortType.AMQP).connect())
         {
             SaslOutcome saslOutcome = new SaslOutcome();
             saslOutcome.setCode(SaslCode.OK);
@@ -326,8 +317,7 @@ public class SaslTest extends BrokerAdminUsingTestBase
     @SpecificationTest(section = "5.3.1", description = "Receipt of an empty frame is an irrecoverable error.")
     public void emptyFramesDisallowed() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.AMQP);
-        try (FrameTransport transport = new FrameTransport(addr, true).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin(), BrokerAdmin.PortType.AMQP).connect())
         {
             transport.newInteraction()
                      .protocolHeader(SASL_AMQP_HEADER_BYTES)
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/security/sasl/extensions/qpid/SaslAuthenticationTimeoutTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/security/sasl/extensions/qpid/SaslAuthenticationTimeoutTest.java
index 2867699..83108a6 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/security/sasl/extensions/qpid/SaslAuthenticationTimeoutTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/security/sasl/extensions/qpid/SaslAuthenticationTimeoutTest.java
@@ -26,7 +26,6 @@ import static org.hamcrest.Matchers.hasItem;
 import static org.hamcrest.Matchers.is;
 import static org.junit.Assume.assumeThat;
 
-import java.net.InetSocketAddress;
 import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
 
@@ -60,8 +59,7 @@ public class SaslAuthenticationTimeoutTest extends BrokerAdminUsingTestBase
     @Test
     public void authenticationTimeout() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.AMQP);
-        try (FrameTransport transport = new FrameTransport(addr, true).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin(), BrokerAdmin.PortType.AMQP).connect())
         {
             final Interaction interaction = transport.newInteraction();
             final byte[] saslHeaderResponse = interaction.protocolHeader(SASL_AMQP_HEADER_BYTES)
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/session/BeginTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/session/BeginTest.java
index 320294a..a5ac540 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/session/BeginTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/session/BeginTest.java
@@ -28,8 +28,6 @@ import static org.hamcrest.Matchers.lessThan;
 import static org.hamcrest.Matchers.notNullValue;
 import static org.junit.Assume.assumeThat;
 
-import java.net.InetSocketAddress;
-
 import org.junit.Test;
 
 import org.apache.qpid.server.protocol.v1_0.type.ErrorCarryingFrameBody;
@@ -46,18 +44,17 @@ import org.apache.qpid.tests.protocol.Response;
 import org.apache.qpid.tests.protocol.SpecificationTest;
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
 import org.apache.qpid.tests.protocol.v1_0.Interaction;
-import org.apache.qpid.tests.utils.BrokerAdmin;
 import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
 
 public class BeginTest extends BrokerAdminUsingTestBase
 {
+
     @Test
     @SpecificationTest(section = "1.3.4",
             description = "mandatory [...] a non null value for the field is always encoded.")
     public void emptyBegin() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try(FrameTransport transport = new FrameTransport(addr).connect())
+        try(FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Response<?> response =  transport.newInteraction()
                                            .negotiateOpen()
@@ -82,8 +79,7 @@ public class BeginTest extends BrokerAdminUsingTestBase
                           + "and sending a begin announcing the association of the session endpoint with the outgoing channel.")
     public void successfulBegin() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final UnsignedShort channel = UnsignedShort.valueOf(37);
             Interaction interaction = transport.newInteraction();
@@ -109,8 +105,7 @@ public class BeginTest extends BrokerAdminUsingTestBase
                           + "the connection with the framing-error error-code..")
     public void channelMax() throws Exception
     {
-        final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        try (FrameTransport transport = new FrameTransport(addr).connect())
+        try (FrameTransport transport = new FrameTransport(getBrokerAdmin()).connect())
         {
             final Interaction interaction = transport.newInteraction();
             final int ourChannelMax = 5;
diff --git a/systests/qpid-systests-spawn-admin/src/main/java/org/apache/qpid/systests/admin/SpawnBrokerAdmin.java b/systests/qpid-systests-spawn-admin/src/main/java/org/apache/qpid/systests/admin/SpawnBrokerAdmin.java
index 0ce90ac..a70c3c9 100644
--- a/systests/qpid-systests-spawn-admin/src/main/java/org/apache/qpid/systests/admin/SpawnBrokerAdmin.java
+++ b/systests/qpid-systests-spawn-admin/src/main/java/org/apache/qpid/systests/admin/SpawnBrokerAdmin.java
@@ -252,6 +252,12 @@ public class SpawnBrokerAdmin implements BrokerAdmin, Closeable
     }
 
     @Override
+    public boolean isAnonymousSupported()
+    {
+        return true;
+    }
+
+    @Override
     public boolean isSASLSupported()
     {
         return true;
diff --git a/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/BrokerAdmin.java b/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/BrokerAdmin.java
index b8acf34..e9695de 100644
--- a/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/BrokerAdmin.java
+++ b/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/BrokerAdmin.java
@@ -48,6 +48,7 @@ public interface BrokerAdmin extends Pluggable
     boolean supportsRestart();
     ListenableFuture<Void> restart();
 
+    boolean isAnonymousSupported();
     boolean isSASLSupported();
     boolean isSASLMechanismSupported(String mechanismName);
     boolean isWebSocketSupported();
diff --git a/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/EmbeddedBrokerPerClassAdminImpl.java b/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/EmbeddedBrokerPerClassAdminImpl.java
index 59cf731..03d997f 100644
--- a/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/EmbeddedBrokerPerClassAdminImpl.java
+++ b/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/EmbeddedBrokerPerClassAdminImpl.java
@@ -361,6 +361,12 @@ public class EmbeddedBrokerPerClassAdminImpl implements BrokerAdmin
     }
 
     @Override
+    public boolean isAnonymousSupported()
+    {
+        return true;
+    }
+
+    @Override
     public boolean isSASLSupported()
     {
         return true;
diff --git a/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/ExternalQpidBrokerAdminImpl.java b/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/ExternalQpidBrokerAdminImpl.java
index e125c21..17f1890 100644
--- a/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/ExternalQpidBrokerAdminImpl.java
+++ b/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/ExternalQpidBrokerAdminImpl.java
@@ -139,6 +139,12 @@ public class ExternalQpidBrokerAdminImpl implements BrokerAdmin
     }
 
     @Override
+    public boolean isAnonymousSupported()
+    {
+        return Boolean.parseBoolean(System.getProperty("qpid.tests.protocol.broker.external.anonymousSupported", "true"));
+    }
+
+    @Override
     public boolean isSASLSupported()
     {
         return Boolean.parseBoolean(System.getProperty("qpid.tests.protocol.broker.external.saslSupported", "true"));
@@ -165,8 +171,10 @@ public class ExternalQpidBrokerAdminImpl implements BrokerAdmin
     @Override
     public boolean isSASLMechanismSupported(final String mechanismName)
     {
-        String supportedSaslMechanisms = System.getProperty("qpid.tests.protocol.broker.external.supportedSaslMechanisms","PLAIN,CRAM-MD5");
-        return Arrays.asList(supportedSaslMechanisms.split(",")).contains(mechanismName);
+        final String supportedSaslMechanisms = System.getProperty(
+                "qpid.tests.protocol.broker.external.supportedSaslMechanisms",
+                "PLAIN,CRAM-MD5").toUpperCase();
+        return Arrays.asList(supportedSaslMechanisms.split(",")).contains(mechanismName.toUpperCase());
     }
 
     @Override
diff --git a/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/LoggingBrokerAdminDecorator.java b/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/LoggingBrokerAdminDecorator.java
index 6674e3e..7cbe2cb 100644
--- a/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/LoggingBrokerAdminDecorator.java
+++ b/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/LoggingBrokerAdminDecorator.java
@@ -127,6 +127,12 @@ public class LoggingBrokerAdminDecorator implements BrokerAdmin
     }
 
     @Override
+    public boolean isAnonymousSupported()
+    {
+        return _delegate.isAnonymousSupported();
+    }
+
+    @Override
     public boolean isSASLSupported()
     {
         return _delegate.isSASLSupported();


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


[qpid-broker-j] 03/08: QPID-8349: [Tests][AMQP 1.0] Set transfer format

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

orudyy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/qpid-broker-j.git

commit 90881f0d2ea7a2b73b52d0174ac920103470449a
Author: Alex Rudyy <or...@apache.org>
AuthorDate: Tue Aug 27 23:27:42 2019 +0100

    QPID-8349: [Tests][AMQP 1.0] Set transfer format
---
 .../src/main/java/org/apache/qpid/tests/protocol/v1_0/Interaction.java   | 1 +
 1 file changed, 1 insertion(+)

diff --git a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Interaction.java b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Interaction.java
index c0ccf92..ff0fa60 100644
--- a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Interaction.java
+++ b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Interaction.java
@@ -157,6 +157,7 @@ public class Interaction extends AbstractInteraction<Interaction>
         _transfer.setHandle(defaultLinkHandle);
         _transfer.setDeliveryTag(new Binary("testDeliveryTag".getBytes(StandardCharsets.UTF_8)));
         _transfer.setDeliveryId(UnsignedInteger.valueOf(_deliveryIdCounter));
+        _transfer.setMessageFormat(UnsignedInteger.ZERO);
 
         _disposition = new Disposition();
         _disposition.setFirst(UnsignedInteger.ZERO);


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


[qpid-broker-j] 06/08: QPID-8350: [Tests][AMQP 1.0] Improve error handling in tests

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

orudyy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/qpid-broker-j.git

commit 4e98249945001ad0c90b4f216a5b5880dca80485
Author: Alex Rudyy <or...@apache.org>
AuthorDate: Tue Aug 27 16:52:35 2019 +0100

    QPID-8350: [Tests][AMQP 1.0] Improve error handling in tests
---
 .../qpid/tests/protocol/v1_0/DecodeErrorTest.java  |  52 +++------
 .../qpid/tests/protocol/v1_0/ProtocolAsserts.java  | 120 +++++++++++++++++++++
 2 files changed, 136 insertions(+), 36 deletions(-)

diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/DecodeErrorTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/DecodeErrorTest.java
index d3d925c..9d189d5 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/DecodeErrorTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/DecodeErrorTest.java
@@ -21,11 +21,11 @@
 package org.apache.qpid.tests.protocol.v1_0;
 
 import static org.apache.qpid.server.protocol.v1_0.type.transport.AmqpError.DECODE_ERROR;
+import static org.apache.qpid.server.protocol.v1_0.type.transport.AmqpError.INVALID_FIELD;
+import static org.apache.qpid.tests.protocol.v1_0.ProtocolAsserts.assertAttachError;
 import static org.hamcrest.CoreMatchers.equalTo;
-import static org.hamcrest.CoreMatchers.notNullValue;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.greaterThan;
-import static org.hamcrest.Matchers.instanceOf;
 import static org.hamcrest.Matchers.is;
 import static org.junit.Assume.assumeThat;
 
@@ -40,7 +40,6 @@ import org.junit.Test;
 
 import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
 import org.apache.qpid.server.protocol.v1_0.codec.StringWriter;
-import org.apache.qpid.server.protocol.v1_0.type.ErrorCarryingFrameBody;
 import org.apache.qpid.server.protocol.v1_0.type.Symbol;
 import org.apache.qpid.server.protocol.v1_0.type.UnsignedInteger;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.AmqpValue;
@@ -53,12 +52,9 @@ import org.apache.qpid.server.protocol.v1_0.type.messaging.Source;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.Target;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Attach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Begin;
-import org.apache.qpid.server.protocol.v1_0.type.transport.Error;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
-import org.apache.qpid.server.protocol.v1_0.type.transport.SenderSettleMode;
-import org.apache.qpid.tests.protocol.Response;
 import org.apache.qpid.tests.protocol.SpecificationTest;
 import org.apache.qpid.tests.utils.BrokerAdmin;
 import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
@@ -71,7 +67,6 @@ public class DecodeErrorTest extends BrokerAdminUsingTestBase
     public void setUp()
     {
         _brokerAddress = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
-        getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME);
     }
 
     @Test
@@ -80,6 +75,7 @@ public class DecodeErrorTest extends BrokerAdminUsingTestBase
                           + " Zero or one delivery-annotations, [...]")
     public void illegalMessage() throws Exception
     {
+        getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME);
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction();
@@ -90,7 +86,6 @@ public class DecodeErrorTest extends BrokerAdminUsingTestBase
                        .begin()
                        .consumeResponse(Begin.class)
                        .attachRole(Role.SENDER)
-                       .attachSndSettleMode(SenderSettleMode.SETTLED)
                        .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
                        .attach()
                        .consumeResponse(Attach.class)
@@ -103,7 +98,10 @@ public class DecodeErrorTest extends BrokerAdminUsingTestBase
             {
                 interaction.transferMessageFormat(UnsignedInteger.ZERO)
                            .transferPayload(payload)
-                           .transfer();
+                           .transferSettled(true)
+                           .transferMessageFormat(UnsignedInteger.ZERO)
+                           .transfer()
+                           .sync();
             }
 
             interaction.closeUnconditionally();
@@ -126,25 +124,16 @@ public class DecodeErrorTest extends BrokerAdminUsingTestBase
             source.setDynamic(Boolean.TRUE);
             source.setDynamicNodeProperties(Collections.singletonMap(Symbol.valueOf("lifetime-policy"),
                                                                      UnsignedInteger.MAX_VALUE));
-            final Response<?> latestResponse = transport.newInteraction()
+            final Interaction interaction = transport.newInteraction()
                                                         .negotiateProtocol().consumeResponse()
                                                         .open().consumeResponse(Open.class)
                                                         .begin().consumeResponse(Begin.class)
                                                         .attachSource(source)
-                                                        .attachRole(Role.SENDER)
-                                                        .attach().consumeResponse()
-                                                        .closeUnconditionally()
-                                                        .getLatestResponse();
-
-            assertThat(latestResponse, is(notNullValue()));
-            final Object responseBody = latestResponse.getBody();
-            assertThat(responseBody, is(notNullValue()));
-            assertThat(responseBody, instanceOf(ErrorCarryingFrameBody.class));
-
-            final Error error = ((ErrorCarryingFrameBody) responseBody).getError();
+                                                        .attachRole(Role.RECEIVER)
+                                                        .attach()
+                                                        .sync();
 
-            assertThat(error, is(notNullValue()));
-            assertThat(error.getCondition(), is(equalTo(DECODE_ERROR)));
+            assertAttachError(interaction, DECODE_ERROR, INVALID_FIELD);
         }
     }
 
@@ -160,24 +149,15 @@ public class DecodeErrorTest extends BrokerAdminUsingTestBase
             target.setDynamic(Boolean.TRUE);
             target.setDynamicNodeProperties(Collections.singletonMap(Symbol.valueOf("supported-dist-modes"),
                                                                      UnsignedInteger.ZERO));
-            final Response<?> latestResponse = transport.newInteraction()
+            final Interaction interaction = transport.newInteraction()
                                                         .negotiateProtocol().consumeResponse()
                                                         .open().consumeResponse(Open.class)
                                                         .begin().consumeResponse(Begin.class)
                                                         .attachTarget(target)
                                                         .attachRole(Role.SENDER)
-                                                        .attach().consumeResponse()
-                                                        .closeUnconditionally()
-                                                        .getLatestResponse();
-
-            assertThat(latestResponse, is(notNullValue()));
-            final Object responseBody = latestResponse.getBody();
-            assertThat(responseBody, is(notNullValue()));
-            assertThat(responseBody, instanceOf(ErrorCarryingFrameBody.class));
-
-            final Error error = ((ErrorCarryingFrameBody) responseBody).getError();
-            assertThat(error, is(notNullValue()));
-            assertThat(error.getCondition(), is(equalTo(DECODE_ERROR)));
+                                                        .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
+                                                        .attach().sync();
+            assertAttachError(interaction, DECODE_ERROR, INVALID_FIELD);
         }
     }
 
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/ProtocolAsserts.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/ProtocolAsserts.java
new file mode 100644
index 0000000..83e9dc7
--- /dev/null
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/ProtocolAsserts.java
@@ -0,0 +1,120 @@
+/*
+ * 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.tests.protocol.v1_0;
+
+import static org.apache.qpid.server.protocol.v1_0.type.transport.AmqpError.NOT_IMPLEMENTED;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.instanceOf;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.oneOf;
+import static org.junit.Assume.assumeThat;
+
+import org.apache.qpid.server.protocol.v1_0.type.ErrorCarryingFrameBody;
+import org.apache.qpid.server.protocol.v1_0.type.ErrorCondition;
+import org.apache.qpid.server.protocol.v1_0.type.transport.Attach;
+import org.apache.qpid.server.protocol.v1_0.type.transport.Close;
+import org.apache.qpid.server.protocol.v1_0.type.transport.Detach;
+import org.apache.qpid.server.protocol.v1_0.type.transport.End;
+import org.apache.qpid.server.protocol.v1_0.type.transport.Error;
+import org.apache.qpid.tests.protocol.Response;
+
+public class ProtocolAsserts
+{
+    private ProtocolAsserts()
+    {
+    }
+
+    /**
+     * When core spec is not vocal about how the error on attach can be reported,
+     * there are potentially several ways of communicating error back to the client:
+     * <pre>
+     * Attach, Detach(with error)
+     * Attach, Detach, End(with error)
+     * Attach, Detach, End, Close(with error)
+     * End(with error)
+     * End, Close(with error)
+     * </pre>
+     * Thus, in order to assert the error possible codes, we need to get {@link ErrorCarryingFrameBody}
+     * (implemented by {@link Detach}, {@link End}, {@link Close}) and examine error field there.
+     * If error is set, than assert the error code, otherwise, receive subsequent {@link ErrorCarryingFrameBody}
+     * and examine error field there.
+     *
+     * @param interaction interaction
+     * @param expected possible errors
+     */
+    public static void assertAttachError(final Interaction interaction, final ErrorCondition... expected)
+            throws Exception
+    {
+        Response<?> response = interaction.consumeResponse().getLatestResponse();
+        assertThat(response, is(notNullValue()));
+        Object responseBody = response.getBody();
+        assertThat(responseBody, is(notNullValue()));
+
+        if (response.getBody() instanceof Attach)
+        {
+            // expected either Detach or End or Close
+            response = interaction.consumeResponse().getLatestResponse();
+            assertThat(response, is(notNullValue()));
+            responseBody = response.getBody();
+            assertThat(responseBody, is(notNullValue()));
+        }
+
+        assertThat(responseBody, instanceOf(ErrorCarryingFrameBody.class));
+
+        Error error = ((ErrorCarryingFrameBody) responseBody).getError();
+        if (error != null)
+        {
+            assumeThat(error.getCondition(), is(not(NOT_IMPLEMENTED)));
+            assertThat(error.getCondition(), oneOf(expected));
+        }
+        else
+        {
+            // expected either End or Close
+            response = interaction.consumeResponse().getLatestResponse();
+            assertThat(response, is(notNullValue()));
+            Object nextBody = response.getBody();
+            assertThat(nextBody, is(notNullValue()));
+            assertThat(nextBody, instanceOf(ErrorCarryingFrameBody.class));
+            error = ((ErrorCarryingFrameBody) nextBody).getError();
+            if (error != null)
+            {
+                assumeThat(error.getCondition(), is(not(NOT_IMPLEMENTED)));
+                assertThat(error.getCondition(), oneOf(expected));
+            }
+            else
+            {
+                // expected Close
+                response = interaction.consumeResponse().getLatestResponse();
+                assertThat(response, is(notNullValue()));
+                Object body = response.getBody();
+                assertThat(body, is(notNullValue()));
+                assertThat(body, instanceOf(Close.class));
+                error = ((ErrorCarryingFrameBody) body).getError();
+                assertThat(error.getCondition(), is(notNullValue()));
+                assumeThat(error.getCondition(), is(not(NOT_IMPLEMENTED)));
+                assertThat(error.getCondition(), oneOf(expected));
+            }
+        }
+    }
+
+}


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


[qpid-broker-j] 02/08: QPID-8349: [Tests][AMQP 1.0] Fix setting of maximum frame size

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

orudyy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/qpid-broker-j.git

commit 7718d33d46715c5ac1d0e829b099da646ac34f76
Author: Alex Rudyy <or...@apache.org>
AuthorDate: Tue Aug 27 23:13:57 2019 +0100

    QPID-8349: [Tests][AMQP 1.0] Fix setting of maximum frame size
---
 .../src/main/java/org/apache/qpid/tests/protocol/v1_0/FrameDecoder.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/FrameDecoder.java b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/FrameDecoder.java
index 0e86c01..e04ed9f 100644
--- a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/FrameDecoder.java
+++ b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/FrameDecoder.java
@@ -230,7 +230,7 @@ public class FrameDecoder implements InputDecoder
                 if (val instanceof FrameBody)
                 {
                     FrameBody frameBody = (FrameBody) val;
-                    if (frameBody instanceof Open && ((Open) frameBody).getMaxFrameSize() != null)
+                    if (frameBody instanceof Open && ((Open) frameBody).getMaxFrameSize() != null && ((Open) frameBody).getMaxFrameSize().intValue() > 512)
                     {
                         _frameSize = ((Open) frameBody).getMaxFrameSize().intValue();
                     }


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


[qpid-broker-j] 01/08: QPID-8349: [Tests][AMQP 1.0] Add ability into ExistingQueueAdmin to drain queues using 'settlled' or 'unsettled' sender setlle modes

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

orudyy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/qpid-broker-j.git

commit 757ba6d6a1ae76eb6d1df0db370d77c7112e1085
Author: Alex Rudyy <or...@apache.org>
AuthorDate: Tue Aug 27 16:28:41 2019 +0100

    QPID-8349: [Tests][AMQP 1.0] Add ability into ExistingQueueAdmin to drain queues using 'settlled' or 'unsettled' sender setlle modes
---
 .../tests/protocol/v1_0/ExistingQueueAdmin.java    | 70 ++++++++++------------
 1 file changed, 32 insertions(+), 38 deletions(-)

diff --git a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/ExistingQueueAdmin.java b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/ExistingQueueAdmin.java
index d789b1a..648c03c 100644
--- a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/ExistingQueueAdmin.java
+++ b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/ExistingQueueAdmin.java
@@ -29,14 +29,14 @@ import org.slf4j.LoggerFactory;
 
 import org.apache.qpid.server.protocol.v1_0.type.Binary;
 import org.apache.qpid.server.protocol.v1_0.type.UnsignedInteger;
+import org.apache.qpid.server.protocol.v1_0.type.messaging.Accepted;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Attach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Begin;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
 import org.apache.qpid.server.protocol.v1_0.type.transport.SenderSettleMode;
-import org.apache.qpid.server.protocol.v1_0.type.transport.Transfer;
-import org.apache.qpid.tests.protocol.Response;
+import org.apache.qpid.server.util.StringUtil;
 import org.apache.qpid.tests.utils.BrokerAdmin;
 import org.apache.qpid.tests.utils.BrokerAdminException;
 import org.apache.qpid.tests.utils.QueueAdmin;
@@ -47,6 +47,8 @@ public class ExistingQueueAdmin implements QueueAdmin
     private static final Logger LOGGER = LoggerFactory.getLogger(ExistingQueueAdmin.class);
     private static final String ADMIN_LINK_NAME = "existingQueueAdminLink";
     private static final int DRAIN_CREDITS = 1000;
+    private static final boolean DRAIN_UNSETTLED =
+            Boolean.getBoolean("qpid.tests.protocol.broker.external.existingQueueAdmin.drainUnsettled");
 
     @Override
     public void createQueue(final BrokerAdmin brokerAdmin, final String queueName)
@@ -145,6 +147,8 @@ public class ExistingQueueAdmin implements QueueAdmin
 
     private void drainQueue(final InetSocketAddress brokerAddress, final String queueName) throws Exception
     {
+        final String controlMessage = String.format("---%s---", new StringUtil().randomAlphaNumericString(32));
+        putMessageOnQueue(brokerAddress, queueName, controlMessage);
         try (FrameTransport transport = new FrameTransport(brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction();
@@ -153,55 +157,45 @@ public class ExistingQueueAdmin implements QueueAdmin
                        .begin().consumeResponse()
                        .attachName(ADMIN_LINK_NAME)
                        .attachRole(Role.RECEIVER)
-                       .attachSndSettleMode(SenderSettleMode.SETTLED)
+                       .attachSndSettleMode(DRAIN_UNSETTLED ? SenderSettleMode.UNSETTLED : SenderSettleMode.SETTLED)
                        .attachSourceAddress(queueName)
                        .attach().consumeResponse(Attach.class)
-                       .flowIncomingWindow(UnsignedInteger.MAX_VALUE)
-                       .flowNextIncomingId(interaction.getCachedResponse(Begin.class).getNextOutgoingId())
+                       .flowIncomingWindow(UnsignedInteger.valueOf(DRAIN_CREDITS))
+                       .flowNextIncomingIdFromPeerLatestSessionBeginAndDeliveryCount()
                        .flowLinkCredit(UnsignedInteger.valueOf(DRAIN_CREDITS))
                        .flowHandleFromLinkHandle()
                        .flowOutgoingWindow(UnsignedInteger.ZERO)
                        .flowNextOutgoingId(UnsignedInteger.ZERO)
-                       .flowDrain(Boolean.TRUE)
                        .flow();
-            boolean received;
+
+            boolean controlMessageReceived;
             do
             {
-                received = receive(interaction, queueName);
-            }
-            while (received);
-            closeInteraction(interaction);
-        }
-    }
+                interaction.receiveDelivery(Flow.class);
+                try
+                {
+                    interaction.decodeLatestDelivery();
+                }
+                catch (Exception e)
+                {
+                    LOGGER.error("Message decoding failed", e);
+                }
 
-    private boolean receive(final Interaction interaction, String queueName) throws Exception
-    {
-        boolean transferExpected;
-        boolean messageReceived = false;
-        do
-        {
-            final Response<?> latestResponse =
-                    interaction.consumeResponse(Transfer.class, Flow.class, null).getLatestResponse();
-            if (latestResponse != null && latestResponse.getBody() instanceof Transfer)
-            {
-                Transfer responseTransfer = (Transfer) latestResponse.getBody();
-                transferExpected = Boolean.TRUE.equals(responseTransfer.getMore());
-                if (!transferExpected)
+                final Object message = interaction.getDecodedLatestDelivery();
+                if (DRAIN_UNSETTLED)
                 {
-                    messageReceived = true;
+                    interaction.dispositionSettled(true)
+                               .dispositionRole(Role.RECEIVER)
+                               .dispositionFirstFromLatestDelivery()
+                               .dispositionState(new Accepted())
+                               .disposition();
                 }
+
+                controlMessageReceived = controlMessage.equals(message);
             }
-            else if (latestResponse != null && latestResponse.getBody() instanceof Flow)
-            {
-                transferExpected = false;
-            }
-            else
-            {
-                LOGGER.warn("Neither transfer no flow was received from '{}'. Assuming no messages left...", queueName);
-                transferExpected = false;
-            }
+            while (!controlMessageReceived);
+            closeInteraction(interaction);
         }
-        while (transferExpected);
-        return messageReceived;
     }
+
 }


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


[qpid-broker-j] 07/08: QPID-8349: [Tests][AMQP 1.0] Move open negotiation into Interaction

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

orudyy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/qpid-broker-j.git

commit 0578ed82ab314ba9b12bb0c7baf4ccf0f0bff056
Author: Alex Rudyy <or...@apache.org>
AuthorDate: Fri Aug 23 15:22:09 2019 +0100

    QPID-8349: [Tests][AMQP 1.0] Move open negotiation into Interaction
---
 .../tests/protocol/v1_0/ExistingQueueAdmin.java    |  7 +--
 .../qpid/tests/protocol/v1_0/Interaction.java      | 11 ++++
 .../org/apache/qpid/tests/protocol/v1_0/Utils.java | 11 +---
 .../qpid/tests/protocol/v1_0/DecodeErrorTest.java  | 12 +---
 .../anonymousterminus/AnonymousTerminusTest.java   |  4 +-
 .../bindmapjms/TemporaryDestinationTest.java       | 32 +++-------
 .../bindmapjms/TopicDestinationTest.java           | 16 ++---
 .../v1_0/extensions/filter/FilterTest.java         | 10 +---
 .../v1_0/extensions/management/ManagementTest.java |  7 +--
 .../extensions/qpid/message/MalformedMessage.java  |  6 +-
 .../extensions/qpid/queue/QueueDeletionTest.java   | 19 ++----
 .../transactiontimeout/TransactionTimeoutTest.java | 11 +---
 .../extensions/soleconn/CloseExistingPolicy.java   | 34 ++++-------
 .../v1_0/extensions/soleconn/MixedPolicy.java      | 27 ++++-----
 .../soleconn/RefuseConnectionPolicy.java           | 45 ++++++--------
 .../v1_0/extensions/websocket/WebSocketTest.java   | 10 ++--
 .../protocol/v1_0/messaging/DeleteOnCloseTest.java | 14 ++---
 .../protocol/v1_0/messaging/MessageFormat.java     |  4 +-
 .../protocol/v1_0/messaging/MultiTransferTest.java | 20 ++-----
 .../tests/protocol/v1_0/messaging/OutcomeTest.java |  8 +--
 .../protocol/v1_0/messaging/TransferTest.java      | 70 +++++++---------------
 .../protocol/v1_0/transaction/DischargeTest.java   | 16 ++---
 .../transaction/TransactionalTransferTest.java     | 52 ++++------------
 .../v1_0/transport/connection/IdleTimeoutTest.java |  6 +-
 .../v1_0/transport/connection/OpenTest.java        | 30 ++++------
 .../protocol/v1_0/transport/link/AttachTest.java   | 16 ++---
 .../protocol/v1_0/transport/link/FlowTest.java     | 34 ++++-------
 .../v1_0/transport/link/LinkStealingTest.java      |  7 +--
 .../v1_0/transport/link/ResumeDeliveriesTest.java  | 27 +++------
 .../protocol/v1_0/transport/session/BeginTest.java | 15 ++---
 30 files changed, 190 insertions(+), 391 deletions(-)

diff --git a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/ExistingQueueAdmin.java b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/ExistingQueueAdmin.java
index 648c03c..d6c4a2c 100644
--- a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/ExistingQueueAdmin.java
+++ b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/ExistingQueueAdmin.java
@@ -33,7 +33,6 @@ import org.apache.qpid.server.protocol.v1_0.type.messaging.Accepted;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Attach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Begin;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
-import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
 import org.apache.qpid.server.protocol.v1_0.type.transport.SenderSettleMode;
 import org.apache.qpid.server.util.StringUtil;
@@ -109,8 +108,7 @@ public class ExistingQueueAdmin implements QueueAdmin
         try (FrameTransport transport = new FrameTransport(brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol().consumeResponse()
-                       .open().consumeResponse(Open.class)
+            interaction.negotiateOpen()
                        .begin().consumeResponse(Begin.class)
                        .attachName(ADMIN_LINK_NAME)
                        .attachRole(Role.SENDER)
@@ -152,8 +150,7 @@ public class ExistingQueueAdmin implements QueueAdmin
         try (FrameTransport transport = new FrameTransport(brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol().consumeResponse()
-                       .open().consumeResponse()
+            interaction.negotiateOpen()
                        .begin().consumeResponse()
                        .attachName(ADMIN_LINK_NAME)
                        .attachRole(Role.RECEIVER)
diff --git a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Interaction.java b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Interaction.java
index 152b73d..ccebfda 100644
--- a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Interaction.java
+++ b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Interaction.java
@@ -1327,4 +1327,15 @@ public class Interaction extends AbstractInteraction<Interaction>
         return this;
     }
 
+    public Interaction negotiateOpen() throws Exception
+    {
+        sendOpen().consumeResponse(Open.class);
+        return this;
+    }
+
+    public Interaction sendOpen() throws Exception
+    {
+        negotiateProtocol().consumeResponse().open();
+        return this;
+    }
 }
diff --git a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Utils.java b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Utils.java
index cb55d7f..f76a1b4 100644
--- a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Utils.java
+++ b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Utils.java
@@ -33,9 +33,7 @@ import org.apache.qpid.server.protocol.v1_0.type.messaging.Header;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Attach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Begin;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Detach;
-import org.apache.qpid.server.protocol.v1_0.type.transport.End;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
-import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
 import org.apache.qpid.server.protocol.v1_0.type.transport.SenderSettleMode;
 import org.apache.qpid.tests.utils.BrokerAdmin;
@@ -48,8 +46,7 @@ public class Utils
         try (FrameTransport transport = new FrameTransport(brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            final Attach attachValidationResponse = interaction.negotiateProtocol().consumeResponse()
-                                                               .open().consumeResponse()
+            final Attach attachValidationResponse = interaction.negotiateOpen()
                                                                .begin().consumeResponse()
                                                                .attachName("validationAttach")
                                                                .attachRole(Role.RECEIVER)
@@ -77,8 +74,7 @@ public class Utils
         try (FrameTransport transport = new FrameTransport(brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol().consumeResponse()
-                       .open().consumeResponse()
+            interaction.negotiateOpen()
                        .begin().consumeResponse()
                        .attachRole(Role.RECEIVER)
                        .attachName("utilsReceiverLink")
@@ -154,8 +150,7 @@ public class Utils
             try (FrameTransport transport = new FrameTransport(brokerAddress).connect())
             {
                 final Interaction interaction = transport.newInteraction();
-                interaction.negotiateProtocol().consumeResponse()
-                           .open().consumeResponse(Open.class)
+                interaction.negotiateOpen()
                            .begin().consumeResponse(Begin.class)
                            .attachName("utilsSenderLink")
                            .attachRole(Role.SENDER)
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/DecodeErrorTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/DecodeErrorTest.java
index 9d189d5..f8695bc 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/DecodeErrorTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/DecodeErrorTest.java
@@ -53,7 +53,6 @@ import org.apache.qpid.server.protocol.v1_0.type.messaging.Target;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Attach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Begin;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
-import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
 import org.apache.qpid.tests.protocol.SpecificationTest;
 import org.apache.qpid.tests.utils.BrokerAdmin;
@@ -79,10 +78,7 @@ public class DecodeErrorTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol()
-                       .consumeResponse()
-                       .open()
-                       .consumeResponse(Open.class)
+            interaction.negotiateOpen()
                        .begin()
                        .consumeResponse(Begin.class)
                        .attachRole(Role.SENDER)
@@ -125,8 +121,7 @@ public class DecodeErrorTest extends BrokerAdminUsingTestBase
             source.setDynamicNodeProperties(Collections.singletonMap(Symbol.valueOf("lifetime-policy"),
                                                                      UnsignedInteger.MAX_VALUE));
             final Interaction interaction = transport.newInteraction()
-                                                        .negotiateProtocol().consumeResponse()
-                                                        .open().consumeResponse(Open.class)
+                                                        .negotiateOpen()
                                                         .begin().consumeResponse(Begin.class)
                                                         .attachSource(source)
                                                         .attachRole(Role.RECEIVER)
@@ -150,8 +145,7 @@ public class DecodeErrorTest extends BrokerAdminUsingTestBase
             target.setDynamicNodeProperties(Collections.singletonMap(Symbol.valueOf("supported-dist-modes"),
                                                                      UnsignedInteger.ZERO));
             final Interaction interaction = transport.newInteraction()
-                                                        .negotiateProtocol().consumeResponse()
-                                                        .open().consumeResponse(Open.class)
+                                                        .negotiateOpen()
                                                         .begin().consumeResponse(Begin.class)
                                                         .attachTarget(target)
                                                         .attachRole(Role.SENDER)
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/anonymousterminus/AnonymousTerminusTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/anonymousterminus/AnonymousTerminusTest.java
index 58864b4..a0f244b 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/anonymousterminus/AnonymousTerminusTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/anonymousterminus/AnonymousTerminusTest.java
@@ -551,9 +551,7 @@ public class AnonymousTerminusTest extends BrokerAdminUsingTestBase
     private Interaction openInteractionWithAnonymousRelayCapability(final FrameTransport transport) throws Exception
     {
         final Interaction interaction = transport.newInteraction();
-        interaction.negotiateProtocol().consumeResponse()
-                   .openDesiredCapabilities(ANONYMOUS_RELAY)
-                   .open().consumeResponse(Open.class);
+        interaction.openDesiredCapabilities(ANONYMOUS_RELAY).negotiateOpen();
 
         Open open = interaction.getLatestResponse(Open.class);
         assumeThat(open.getOfferedCapabilities(), hasItemInArray((ANONYMOUS_RELAY)));
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/bindmapjms/TemporaryDestinationTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/bindmapjms/TemporaryDestinationTest.java
index bfa999a..daf6e9e 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/bindmapjms/TemporaryDestinationTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/bindmapjms/TemporaryDestinationTest.java
@@ -46,7 +46,6 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Attach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Begin;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Detach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
-import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
 import org.apache.qpid.tests.protocol.Response;
 import org.apache.qpid.tests.protocol.SpecificationTest;
@@ -97,8 +96,7 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
             Target target = createTarget(targetCapabilities);
 
             final Interaction interaction = transport.newInteraction();
-            final Attach attachResponse = interaction.negotiateProtocol().consumeResponse()
-                                                     .open().consumeResponse(Open.class)
+            final Attach attachResponse = interaction.negotiateOpen()
                                                      .begin().consumeResponse(Begin.class)
                                                      .attachRole(Role.SENDER)
                                                      .attachTarget(target)
@@ -148,8 +146,7 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
 
             final Interaction interaction = transport.newInteraction();
             final UnsignedInteger senderHandle = UnsignedInteger.ONE;
-            final Attach senderAttachResponse = interaction.negotiateProtocol().consumeResponse()
-                                                           .open().consumeResponse(Open.class)
+            final Attach senderAttachResponse = interaction.negotiateOpen()
                                                            .begin().consumeResponse(Begin.class)
                                                            .attachRole(Role.SENDER)
                                                            .attachHandle(senderHandle)
@@ -209,8 +206,7 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
 
             final Interaction interaction = transport.newInteraction();
             final UnsignedInteger senderHandle = UnsignedInteger.ONE;
-            final Attach senderAttachResponse = interaction.negotiateProtocol().consumeResponse()
-                                                           .open().consumeResponse(Open.class)
+            final Attach senderAttachResponse = interaction.negotiateOpen()
                                                            .begin().consumeResponse(Begin.class)
                                                            .attachRole(Role.SENDER)
                                                            .attachHandle(senderHandle)
@@ -249,8 +245,7 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
 
             final Interaction interaction = transport.newInteraction();
             final UnsignedInteger senderHandle = UnsignedInteger.ONE;
-            final Attach senderAttachResponse = interaction.negotiateProtocol().consumeResponse()
-                                                           .open().consumeResponse(Open.class)
+            final Attach senderAttachResponse = interaction.negotiateOpen()
                                                            .begin().consumeResponse(Begin.class)
                                                            .attachRole(Role.SENDER)
                                                            .attachHandle(senderHandle)
@@ -305,8 +300,7 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
 
             final Interaction interaction = transport.newInteraction();
             final UnsignedInteger receiverHandle = UnsignedInteger.ONE;
-            final Attach receiverAttachResponse = interaction.negotiateProtocol().consumeResponse()
-                                                             .open().consumeResponse(Open.class)
+            final Attach receiverAttachResponse = interaction.negotiateOpen()
                                                              .begin().consumeResponse(Begin.class)
                                                              .attachRole(Role.RECEIVER)
                                                              .attachSource(source)
@@ -370,8 +364,7 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
 
             final Interaction interaction = transport.newInteraction();
             final UnsignedInteger receiverHandle = UnsignedInteger.ONE;
-            final Attach receiverAttachResponse = interaction.negotiateProtocol().consumeResponse()
-                                                             .open().consumeResponse(Open.class)
+            final Attach receiverAttachResponse = interaction.negotiateOpen()
                                                              .begin().consumeResponse(Begin.class)
                                                              .attachRole(Role.RECEIVER)
                                                              .attachSource(source)
@@ -412,8 +405,7 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
 
             final Interaction interaction = transport.newInteraction();
             final UnsignedInteger receiverHandle = UnsignedInteger.ONE;
-            final Attach receiverAttachResponse = interaction.negotiateProtocol().consumeResponse()
-                                                             .open().consumeResponse(Open.class)
+            final Attach receiverAttachResponse = interaction.negotiateOpen()
                                                              .begin().consumeResponse(Begin.class)
                                                              .attachRole(Role.RECEIVER)
                                                              .attachSource(source)
@@ -438,10 +430,7 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            final Detach responseDetach = interaction.negotiateProtocol()
-                                                     .consumeResponse()
-                                                     .open()
-                                                     .consumeResponse(Open.class)
+            final Detach responseDetach = interaction.negotiateOpen()
                                                      .begin()
                                                      .consumeResponse(Begin.class)
                                                      .attachRole(Role.RECEIVER)
@@ -465,10 +454,7 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
             target.setAddress(address);
 
             final Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol()
-                        .consumeResponse()
-                        .open()
-                        .consumeResponse(Open.class)
+            interaction.negotiateOpen()
                         .begin()
                         .consumeResponse(Begin.class)
                         .attachRole(Role.SENDER)
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/bindmapjms/TopicDestinationTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/bindmapjms/TopicDestinationTest.java
index dde3e51..968de73 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/bindmapjms/TopicDestinationTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/bindmapjms/TopicDestinationTest.java
@@ -46,7 +46,6 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.AmqpError;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Attach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Begin;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Detach;
-import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
 import org.apache.qpid.tests.protocol.SpecificationTest;
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
@@ -87,8 +86,7 @@ public class TopicDestinationTest extends BrokerAdminUsingTestBase
             source.setDurable(TerminusDurability.NONE);
 
             final Interaction interaction = transport.newInteraction();
-            final Attach responseAttach = interaction.negotiateProtocol().consumeResponse()
-                                                     .open().consumeResponse(Open.class)
+            final Attach responseAttach = interaction.negotiateOpen()
                                                      .begin().consumeResponse(Begin.class)
                                                      .attachRole(Role.RECEIVER)
                                                      .attachSource(source)
@@ -122,8 +120,7 @@ public class TopicDestinationTest extends BrokerAdminUsingTestBase
             source.setDurable(TerminusDurability.UNSETTLED_STATE);
 
             final Interaction interaction = transport.newInteraction();
-            final Attach responseAttach = interaction.negotiateProtocol().consumeResponse()
-                                                     .open().consumeResponse(Open.class)
+            final Attach responseAttach = interaction.negotiateOpen()
                                                      .begin().consumeResponse(Begin.class)
                                                      .attachRole(Role.RECEIVER)
                                                      .attachSource(source)
@@ -158,8 +155,7 @@ public class TopicDestinationTest extends BrokerAdminUsingTestBase
             source.setDurable(TerminusDurability.NONE);
 
             final Interaction interaction = transport.newInteraction();
-            final Attach responseAttach1 = interaction.negotiateProtocol().consumeResponse()
-                                                      .open().consumeResponse(Open.class)
+            final Attach responseAttach1 = interaction.negotiateOpen()
                                                       .begin().consumeResponse(Begin.class)
                                                       .attachName(subscriptionName + "|global-volatile")
                                                       .attachHandle(UnsignedInteger.ZERO)
@@ -217,8 +213,7 @@ public class TopicDestinationTest extends BrokerAdminUsingTestBase
             source.setDurable(TerminusDurability.CONFIGURATION);
 
             final Interaction interaction = transport.newInteraction();
-            final Attach responseAttach1 = interaction.negotiateProtocol().consumeResponse()
-                                                      .open().consumeResponse(Open.class)
+            final Attach responseAttach1 = interaction.negotiateOpen()
                                                       .begin().consumeResponse(Begin.class)
                                                       .attachName(subscriptionName + "|global")
                                                       .attachHandle(UnsignedInteger.ZERO)
@@ -300,8 +295,7 @@ public class TopicDestinationTest extends BrokerAdminUsingTestBase
             source.setDurable(TerminusDurability.CONFIGURATION);
 
             final Interaction interaction = transport.newInteraction();
-            final Attach responseAttach1 = interaction.negotiateProtocol().consumeResponse()
-                                                      .open().consumeResponse(Open.class)
+            final Attach responseAttach1 = interaction.negotiateOpen()
                                                       .begin().consumeResponse(Begin.class)
                                                       .attachName(subscriptionName + "|global")
                                                       .attachHandle(UnsignedInteger.ZERO)
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/filter/FilterTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/filter/FilterTest.java
index 527b20c..fd47982 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/filter/FilterTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/filter/FilterTest.java
@@ -51,7 +51,6 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Attach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Begin;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Detach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
-import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.ReceiverSettleMode;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
 import org.apache.qpid.tests.protocol.SpecificationTest;
@@ -85,8 +84,7 @@ public class FilterTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol().consumeResponse()
-                       .open().consumeResponse(Open.class)
+            interaction.negotiateOpen()
                        .begin().consumeResponse(Begin.class)
                        .attachRole(Role.SENDER)
                        .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -110,8 +108,7 @@ public class FilterTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol().consumeResponse()
-                       .open().consumeResponse(Open.class)
+            interaction.negotiateOpen()
                        .begin().consumeResponse(Begin.class)
                        .attachRole(Role.RECEIVER)
                        .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -154,8 +151,7 @@ public class FilterTest extends BrokerAdminUsingTestBase
             final Map<Symbol, Filter> filters = new HashMap<>();
             filters.put(Symbol.valueOf("selector-filter"), new JMSSelectorFilter("index=1"));
             filters.put(Symbol.valueOf("test-filter"), new TestFilter("foo"));
-            final Attach responseAttach = interaction.negotiateProtocol().consumeResponse()
-                                                     .open().consumeResponse(Open.class)
+            final Attach responseAttach = interaction.negotiateOpen()
                                                      .begin().consumeResponse(Begin.class)
                                                      .attachRole(Role.RECEIVER)
                                                      .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/management/ManagementTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/management/ManagementTest.java
index 0025fb5..5034d6e 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/management/ManagementTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/management/ManagementTest.java
@@ -43,13 +43,11 @@ import org.apache.qpid.server.protocol.v1_0.type.messaging.TerminusExpiryPolicy;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Attach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Begin;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
-import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.ReceiverSettleMode;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
 import org.apache.qpid.tests.protocol.SpecificationTest;
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
 import org.apache.qpid.tests.protocol.v1_0.Interaction;
-import org.apache.qpid.tests.protocol.v1_0.Utils;
 import org.apache.qpid.tests.utils.BrokerAdmin;
 import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
 
@@ -82,9 +80,8 @@ public class ManagementTest extends BrokerAdminUsingTestBase
             target.setCapabilities(new Symbol[]{Symbol.valueOf("temporary-queue")});
 
             final Interaction interaction = transport.newInteraction();
-            final Attach attachResponse = interaction.negotiateProtocol().consumeResponse()
-                                                     .openHostname("$management")
-                                                     .open().consumeResponse(Open.class)
+            final Attach attachResponse = interaction.openHostname("$management")
+                                                     .negotiateOpen()
                                                      .begin().consumeResponse(Begin.class)
                                                      .attachRole(Role.SENDER)
                                                      .attachTarget(target)
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/message/MalformedMessage.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/message/MalformedMessage.java
index 296edf6..66fd9f3 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/message/MalformedMessage.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/message/MalformedMessage.java
@@ -46,7 +46,6 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Attach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Begin;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Detach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
-import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
 import org.apache.qpid.tests.protocol.v1_0.Interaction;
@@ -76,10 +75,7 @@ public class MalformedMessage extends BrokerAdminUsingTestBase
         try (final FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol()
-                       .consumeResponse()
-                       .open()
-                       .consumeResponse(Open.class)
+            interaction.negotiateOpen()
                        .begin()
                        .consumeResponse(Begin.class)
                        .attachRole(Role.SENDER)
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/queue/QueueDeletionTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/queue/QueueDeletionTest.java
index dff32cc..ab67702 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/queue/QueueDeletionTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/queue/QueueDeletionTest.java
@@ -47,7 +47,6 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Detach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Disposition;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Error;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
-import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.ReceiverSettleMode;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
 import org.apache.qpid.tests.protocol.Response;
@@ -77,8 +76,7 @@ public class QueueDeletionTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             Interaction interaction = transport.newInteraction();
-            final Attach responseAttach = interaction.negotiateProtocol().consumeResponse()
-                                                     .open().consumeResponse(Open.class)
+            final Attach responseAttach = interaction.negotiateOpen()
                                                      .begin().consumeResponse(Begin.class)
                                                      .attachRole(Role.SENDER)
                                                      .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -103,10 +101,7 @@ public class QueueDeletionTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             Interaction interaction = transport.newInteraction();
-            final Attach responseAttach = interaction.negotiateProtocol()
-                                                     .consumeResponse()
-                                                     .open()
-                                                     .consumeResponse(Open.class)
+            final Attach responseAttach = interaction.negotiateOpen()
                                                      .begin()
                                                      .consumeResponse(Begin.class)
                                                      .attachRole(Role.RECEIVER)
@@ -134,10 +129,7 @@ public class QueueDeletionTest extends BrokerAdminUsingTestBase
 
             final Interaction interaction = transport.newInteraction();
 
-            Attach attach = interaction.negotiateProtocol()
-                                       .consumeResponse()
-                                       .open()
-                                       .consumeResponse(Open.class)
+            Attach attach = interaction.negotiateOpen()
                                        .begin()
                                        .consumeResponse(Begin.class)
 
@@ -187,10 +179,7 @@ public class QueueDeletionTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            Attach attach = interaction.negotiateProtocol()
-                                       .consumeResponse()
-                                       .open()
-                                       .consumeResponse(Open.class)
+            Attach attach = interaction.negotiateOpen()
                                        .begin()
                                        .consumeResponse(Begin.class)
 
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/transactiontimeout/TransactionTimeoutTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/transactiontimeout/TransactionTimeoutTest.java
index 85dff52..3cf5a10 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/transactiontimeout/TransactionTimeoutTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/transactiontimeout/TransactionTimeoutTest.java
@@ -40,7 +40,6 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Begin;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Close;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Disposition;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
-import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.ReceiverSettleMode;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
 import org.apache.qpid.tests.protocol.Response;
@@ -73,10 +72,7 @@ public class TransactionTimeoutTest extends BrokerAdminUsingTestBase
             final UnsignedInteger linkHandle = UnsignedInteger.ONE;
 
             final Interaction interaction = transport.newInteraction();
-            Disposition responseDisposition = interaction.negotiateProtocol()
-                                                         .consumeResponse()
-                                                         .open()
-                                                         .consumeResponse(Open.class)
+            Disposition responseDisposition = interaction.negotiateOpen()
                                                          .begin()
                                                          .consumeResponse(Begin.class)
 
@@ -114,10 +110,7 @@ public class TransactionTimeoutTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol()
-                       .consumeResponse()
-                       .open()
-                       .consumeResponse(Open.class)
+            interaction.negotiateOpen()
                        .begin()
                        .consumeResponse(Begin.class)
 
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/CloseExistingPolicy.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/CloseExistingPolicy.java
index 0427c96..065cbbf 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/CloseExistingPolicy.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/CloseExistingPolicy.java
@@ -64,13 +64,12 @@ public class CloseExistingPolicy extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             Open responseOpen = transport.newInteraction()
-                                         .negotiateProtocol().consumeResponse()
                                          .openContainerId("testContainerId")
                                          .openDesiredCapabilities(SOLE_CONNECTION_FOR_CONTAINER)
                                          .openProperties(Collections.singletonMap(
                                                  SOLE_CONNECTION_ENFORCEMENT_POLICY,
                                                  CLOSE_EXISTING))
-                                         .open().consumeResponse()
+                                         .negotiateOpen()
                                          .getLatestResponse(Open.class);
 
             assumeSoleConnectionCapability(responseOpen);
@@ -91,12 +90,11 @@ public class CloseExistingPolicy extends BrokerAdminUsingTestBase
         try (FrameTransport transport1 = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction1 = transport1.newInteraction();
-            interaction1.negotiateProtocol().consumeResponse()
-                        .openContainerId("testContainerId")
+            interaction1.openContainerId("testContainerId")
                         .openDesiredCapabilities(SOLE_CONNECTION_FOR_CONTAINER)
                         .openProperties(Collections.singletonMap(SOLE_CONNECTION_ENFORCEMENT_POLICY,
                                                                  CLOSE_EXISTING))
-                        .open().consumeResponse(Open.class);
+                        .negotiateOpen();
 
             final Open responseOpen = interaction1.getLatestResponse(Open.class);
             assumeSoleConnectionCapability(responseOpen);
@@ -105,12 +103,11 @@ public class CloseExistingPolicy extends BrokerAdminUsingTestBase
             try (FrameTransport transport2 = new FrameTransport(_brokerAddress).connect())
             {
                 final Interaction interaction2 = transport2.newInteraction();
-                interaction2.negotiateProtocol().consumeResponse()
-                            .openContainerId("testContainerId")
+                interaction2.openContainerId("testContainerId")
                             .openDesiredCapabilities(SOLE_CONNECTION_FOR_CONTAINER)
                             .openProperties(Collections.singletonMap(SOLE_CONNECTION_ENFORCEMENT_POLICY,
                                                                      CLOSE_EXISTING))
-                            .open()
+                            .sendOpen()
                             .sync();
 
                 assertResourceLocked(interaction1.consumeResponse().getLatestResponse(Close.class));
@@ -130,9 +127,8 @@ public class CloseExistingPolicy extends BrokerAdminUsingTestBase
         {
             final Interaction interaction1 = transport1.newInteraction();
             // Omit setting the desired capability to test weak detection
-            interaction1.negotiateProtocol().consumeResponse()
-                        .openContainerId("testContainerId")
-                        .open().consumeResponse(Open.class);
+            interaction1.openContainerId("testContainerId")
+                        .negotiateOpen();
 
             final Open responseOpen = interaction1.getLatestResponse(Open.class);
             assumeSoleConnectionCapability(responseOpen);
@@ -141,13 +137,11 @@ public class CloseExistingPolicy extends BrokerAdminUsingTestBase
             try (FrameTransport transport2 = new FrameTransport(_brokerAddress).connect())
             {
                 final Interaction interaction2 = transport2.newInteraction();
-                interaction2.negotiateProtocol().consumeResponse()
-                            .openContainerId("testContainerId")
+                interaction2.openContainerId("testContainerId")
                             .openDesiredCapabilities(SOLE_CONNECTION_FOR_CONTAINER)
                             .openProperties(Collections.singletonMap(SOLE_CONNECTION_ENFORCEMENT_POLICY,
                                                                      CLOSE_EXISTING))
-                            .open()
-                            .consumeResponse(Open.class);
+                            .negotiateOpen();
 
                 final Open responseOpen2 = interaction2.getLatestResponse(Open.class);
                 assumeSoleConnectionCapability(responseOpen2);
@@ -164,13 +158,12 @@ public class CloseExistingPolicy extends BrokerAdminUsingTestBase
         try (FrameTransport transport1 = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction1 = transport1.newInteraction();
-            Open responseOpen = interaction1.negotiateProtocol().consumeResponse()
-                                            .openContainerId("testContainerId")
+            Open responseOpen = interaction1.openContainerId("testContainerId")
                                             .openDesiredCapabilities(SOLE_CONNECTION_FOR_CONTAINER)
                                             .openProperties(Collections.singletonMap(
                                                     SOLE_CONNECTION_ENFORCEMENT_POLICY,
                                                     CLOSE_EXISTING))
-                                            .open().consumeResponse()
+                                            .negotiateOpen()
                                             .getLatestResponse(Open.class);
 
             assumeSoleConnectionCapability(responseOpen);
@@ -181,9 +174,8 @@ public class CloseExistingPolicy extends BrokerAdminUsingTestBase
             {
                 final Interaction interaction2 = transport2.newInteraction();
                 // Omit setting the desired capability to test strong detection
-                interaction2.negotiateProtocol().consumeResponse()
-                            .openContainerId("testContainerId")
-                            .open().sync();
+                interaction2.openContainerId("testContainerId")
+                            .sendOpen().sync();
 
                 assertResourceLocked(interaction1.consumeResponse().getLatestResponse(Close.class));
                 assertSoleConnectionCapability(interaction2.consumeResponse().getLatestResponse(Open.class));
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/MixedPolicy.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/MixedPolicy.java
index 5e32c86..48b71a7 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/MixedPolicy.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/MixedPolicy.java
@@ -57,12 +57,11 @@ public class MixedPolicy extends BrokerAdminUsingTestBase
         try (FrameTransport transport1 = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction1 = transport1.newInteraction();
-            interaction1.negotiateProtocol().consumeResponse()
-                        .openContainerId("testContainerId")
+            interaction1.openContainerId("testContainerId")
                         .openDesiredCapabilities(SOLE_CONNECTION_FOR_CONTAINER)
                         .openProperties(Collections.singletonMap(SOLE_CONNECTION_ENFORCEMENT_POLICY,
                                                                  CLOSE_EXISTING))
-                        .open().consumeResponse(Open.class);
+                        .negotiateOpen();
 
             Open responseOpen = interaction1.getLatestResponse(Open.class);
             assumeSoleConnectionCapability(responseOpen);
@@ -71,12 +70,11 @@ public class MixedPolicy extends BrokerAdminUsingTestBase
             try (FrameTransport transport2 = new FrameTransport(_brokerAddress).connect())
             {
                 final Interaction interaction2 = transport2.newInteraction();
-                interaction2.negotiateProtocol().consumeResponse()
-                            .openContainerId("testContainerId")
+                interaction2.openContainerId("testContainerId")
                             .openDesiredCapabilities(SOLE_CONNECTION_FOR_CONTAINER)
                             .openProperties(Collections.singletonMap(SOLE_CONNECTION_ENFORCEMENT_POLICY,
                                                                      REFUSE_CONNECTION))
-                            .open().sync();
+                            .sendOpen().sync();
 
                 interaction1.consumeResponse(Close.class);
 
@@ -85,13 +83,11 @@ public class MixedPolicy extends BrokerAdminUsingTestBase
                 try (FrameTransport transport3 = new FrameTransport(_brokerAddress).connect())
                 {
                     final Interaction interaction3 = transport3.newInteraction();
-                    interaction3.negotiateProtocol().consumeResponse()
-                                .openContainerId("testContainerId")
+                    interaction3.openContainerId("testContainerId")
                                 .openDesiredCapabilities(SOLE_CONNECTION_FOR_CONTAINER)
                                 .openProperties(Collections.singletonMap(SOLE_CONNECTION_ENFORCEMENT_POLICY,
                                                                          CLOSE_EXISTING))
-                                .open()
-                                .consumeResponse(Open.class)
+                                .negotiateOpen()
                                 .consumeResponse(Close.class);
                 }
             }
@@ -104,12 +100,11 @@ public class MixedPolicy extends BrokerAdminUsingTestBase
         try (FrameTransport transport1 = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction1 = transport1.newInteraction();
-            interaction1.negotiateProtocol().consumeResponse()
-                        .openContainerId("testContainerId")
+            interaction1.openContainerId("testContainerId")
                         .openDesiredCapabilities(SOLE_CONNECTION_FOR_CONTAINER)
                         .openProperties(Collections.singletonMap(SOLE_CONNECTION_ENFORCEMENT_POLICY,
                                                                  REFUSE_CONNECTION))
-                        .open().consumeResponse(Open.class);
+                        .negotiateOpen();
 
             final Open responseOpen = interaction1.getLatestResponse(Open.class);
             assumeSoleConnectionCapability(responseOpen);
@@ -118,13 +113,11 @@ public class MixedPolicy extends BrokerAdminUsingTestBase
             try (FrameTransport transport2 = new FrameTransport(_brokerAddress).connect())
             {
                 final Interaction interaction2 = transport2.newInteraction();
-                interaction2.negotiateProtocol().consumeResponse()
-                            .openContainerId("testContainerId")
+                interaction2.openContainerId("testContainerId")
                             .openDesiredCapabilities(SOLE_CONNECTION_FOR_CONTAINER)
                             .openProperties(Collections.singletonMap(SOLE_CONNECTION_ENFORCEMENT_POLICY,
                                                                      CLOSE_EXISTING))
-                            .open()
-                            .consumeResponse(Open.class)
+                            .negotiateOpen()
                             .consumeResponse(Close.class);
             }
         }
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/RefuseConnectionPolicy.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/RefuseConnectionPolicy.java
index 08ebda1..5ea0e38 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/RefuseConnectionPolicy.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/RefuseConnectionPolicy.java
@@ -64,13 +64,12 @@ public class RefuseConnectionPolicy extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect();)
         {
             final Interaction interaction = transport.newInteraction();
-            final Open responseOpen = interaction.negotiateProtocol().consumeResponse()
-                                                 .openContainerId("testContainerId")
+            final Open responseOpen = interaction.openContainerId("testContainerId")
                                                  .openDesiredCapabilities(SOLE_CONNECTION_FOR_CONTAINER)
                                                  .openProperties(Collections.singletonMap(
                                                          SOLE_CONNECTION_ENFORCEMENT_POLICY,
                                                          REFUSE_CONNECTION))
-                                                 .open().consumeResponse()
+                                                 .negotiateOpen()
                                                  .getLatestResponse(Open.class);
 
             assumeSoleConnectionCapability(responseOpen);
@@ -91,12 +90,11 @@ public class RefuseConnectionPolicy extends BrokerAdminUsingTestBase
         try (FrameTransport transport1 = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction1 = transport1.newInteraction();
-            interaction1.negotiateProtocol().consumeResponse()
-                        .openContainerId("testContainerId")
+            interaction1.openContainerId("testContainerId")
                         .openDesiredCapabilities(SOLE_CONNECTION_FOR_CONTAINER)
                         .openProperties(Collections.singletonMap(SOLE_CONNECTION_ENFORCEMENT_POLICY,
                                                                  REFUSE_CONNECTION))
-                        .open().consumeResponse(Open.class);
+                        .negotiateOpen();
 
             final Open responseOpen = interaction1.getLatestResponse(Open.class);
             assumeSoleConnectionCapability(responseOpen);
@@ -105,13 +103,12 @@ public class RefuseConnectionPolicy extends BrokerAdminUsingTestBase
             try (FrameTransport transport2 = new FrameTransport(_brokerAddress).connect())
             {
                 final Interaction interaction2 = transport2.newInteraction();
-                final Open responseOpen2 = interaction2.negotiateProtocol().consumeResponse()
-                                                       .openContainerId("testContainerId")
+                final Open responseOpen2 = interaction2.openContainerId("testContainerId")
                                                        .openDesiredCapabilities(SOLE_CONNECTION_FOR_CONTAINER)
                                                        .openProperties(Collections.singletonMap(
                                                                SOLE_CONNECTION_ENFORCEMENT_POLICY,
                                                                REFUSE_CONNECTION))
-                                                       .open().consumeResponse()
+                                                       .negotiateOpen()
                                                        .getLatestResponse(Open.class);
 
                 assertConnectionEstablishmentFailed(responseOpen2);
@@ -128,9 +125,8 @@ public class RefuseConnectionPolicy extends BrokerAdminUsingTestBase
         {
             final Interaction interaction1 = transport1.newInteraction();
             // Omit setting the desired capability to test weak detection
-            interaction1.negotiateProtocol().consumeResponse()
-                        .openContainerId("testContainerId")
-                        .open().consumeResponse(Open.class);
+            interaction1.openContainerId("testContainerId")
+                        .negotiateOpen();
 
             final Open responseOpen = interaction1.getLatestResponse(Open.class);
             assumeSoleConnectionCapability(responseOpen);
@@ -139,13 +135,12 @@ public class RefuseConnectionPolicy extends BrokerAdminUsingTestBase
             try (FrameTransport transport2 = new FrameTransport(_brokerAddress).connect())
             {
                 final Interaction interaction2 = transport2.newInteraction();
-                final Open responseOpen2 = interaction2.negotiateProtocol().consumeResponse()
-                                                       .openContainerId("testContainerId")
+                final Open responseOpen2 = interaction2.openContainerId("testContainerId")
                                                        .openDesiredCapabilities(SOLE_CONNECTION_FOR_CONTAINER)
                                                        .openProperties(Collections.singletonMap(
                                                                SOLE_CONNECTION_ENFORCEMENT_POLICY,
                                                                REFUSE_CONNECTION))
-                                                       .open().consumeResponse()
+                                                       .negotiateOpen()
                                                        .getLatestResponse(Open.class);
 
                 assumeConnectionEstablishmentFailed(responseOpen2);
@@ -160,13 +155,12 @@ public class RefuseConnectionPolicy extends BrokerAdminUsingTestBase
         try (FrameTransport transport1 = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction1 = transport1.newInteraction();
-            final Open responseOpen = interaction1.negotiateProtocol().consumeResponse()
-                                                  .openContainerId("testContainerId")
+            final Open responseOpen = interaction1.openContainerId("testContainerId")
                                                   .openDesiredCapabilities(SOLE_CONNECTION_FOR_CONTAINER)
                                                   .openProperties(Collections.singletonMap(
                                                           SOLE_CONNECTION_ENFORCEMENT_POLICY,
                                                           REFUSE_CONNECTION.getValue()))
-                                                  .open().consumeResponse()
+                                                  .negotiateOpen()
                                                   .getLatestResponse(Open.class);
 
             assumeSoleConnectionCapability(responseOpen);
@@ -177,9 +171,8 @@ public class RefuseConnectionPolicy extends BrokerAdminUsingTestBase
             {
                 final Interaction interaction2 = transport2.newInteraction();
                 // Omit setting the desired capability to test strong detection
-                final Open responseOpen2 = interaction2.negotiateProtocol().consumeResponse()
-                                                       .openContainerId("testContainerId")
-                                                       .open().consumeResponse()
+                final Open responseOpen2 = interaction2.openContainerId("testContainerId")
+                                                       .negotiateOpen()
                                                        .getLatestResponse(Open.class);
 
                 assertConnectionEstablishmentFailed(responseOpen2);
@@ -195,10 +188,9 @@ public class RefuseConnectionPolicy extends BrokerAdminUsingTestBase
         {
             final Interaction interaction1 = transport1.newInteraction();
             // Omit setting the enforcement policy explicitly. The default is refuse.
-            interaction1.negotiateProtocol().consumeResponse()
-                        .openContainerId("testContainerId")
+            interaction1.openContainerId("testContainerId")
                         .openDesiredCapabilities(SOLE_CONNECTION_FOR_CONTAINER)
-                        .open().consumeResponse(Open.class);
+                        .negotiateOpen();
 
             final Open responseOpen = interaction1.getLatestResponse(Open.class);
             assumeSoleConnectionCapability(responseOpen);
@@ -208,10 +200,9 @@ public class RefuseConnectionPolicy extends BrokerAdminUsingTestBase
             {
                 final Interaction interaction2 = transport2.newInteraction();
                 // Omit setting the enforcement policy explicitly. The default is refuse.
-                final Open responseOpen2 = interaction2.negotiateProtocol().consumeResponse()
-                                                       .openContainerId("testContainerId")
+                final Open responseOpen2 = interaction2.openContainerId("testContainerId")
                                                        .openDesiredCapabilities(SOLE_CONNECTION_FOR_CONTAINER)
-                                                       .open().consumeResponse()
+                                                       .negotiateOpen()
                                                        .getLatestResponse(Open.class);
 
                 assertConnectionEstablishmentFailed(responseOpen2);
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/websocket/WebSocketTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/websocket/WebSocketTest.java
index e85f356..e7e9aed 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/websocket/WebSocketTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/websocket/WebSocketTest.java
@@ -39,11 +39,11 @@ import org.junit.Test;
 import org.apache.qpid.server.protocol.v1_0.type.UnsignedInteger;
 import org.apache.qpid.server.protocol.v1_0.type.UnsignedShort;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
+import org.apache.qpid.tests.protocol.SpecificationTest;
+import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
 import org.apache.qpid.tests.protocol.v1_0.Interaction;
 import org.apache.qpid.tests.utils.BrokerAdmin;
-import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
 import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
-import org.apache.qpid.tests.protocol.SpecificationTest;
 
 public class WebSocketTest extends BrokerAdminUsingTestBase
 {
@@ -76,8 +76,7 @@ public class WebSocketTest extends BrokerAdminUsingTestBase
         {
             Interaction interaction = transport.newInteraction();
             final Open responseOpen = interaction
-                                               .negotiateProtocol().consumeResponse()
-                                               .open().consumeResponse()
+                                               .negotiateOpen()
                                                .getLatestResponse(Open.class);
 
             assertThat(responseOpen.getContainerId(), is(notNullValue()));
@@ -101,8 +100,7 @@ public class WebSocketTest extends BrokerAdminUsingTestBase
         {
             Interaction interaction = transport.newInteraction();
             final Open responseOpen = interaction
-                                               .negotiateProtocol().consumeResponse()
-                                               .open().consumeResponse()
+                                               .negotiateOpen()
                                                .getLatestResponse(Open.class);
 
             assertThat(responseOpen.getContainerId(), is(notNullValue()));
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/DeleteOnCloseTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/DeleteOnCloseTest.java
index 63f914f..01534ee 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/DeleteOnCloseTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/DeleteOnCloseTest.java
@@ -43,8 +43,8 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Attach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Begin;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Detach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
-import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
+
 import org.apache.qpid.tests.protocol.Response;
 import org.apache.qpid.tests.protocol.SpecificationTest;
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
@@ -75,8 +75,7 @@ public class DeleteOnCloseTest extends BrokerAdminUsingTestBase
             source.setDynamicNodeProperties(Collections.singletonMap(Session_1_0.LIFETIME_POLICY, new DeleteOnClose()));
             source.setDynamic(true);
             final Interaction interaction = transport.newInteraction();
-            final Attach attachResponse = interaction.negotiateProtocol().consumeResponse()
-                                                     .open().consumeResponse(Open.class)
+            final Attach attachResponse = interaction.negotiateOpen()
                                                      .begin().consumeResponse(Begin.class)
                                                      .attachRole(Role.RECEIVER)
                                                      .attachSource(source)
@@ -111,8 +110,7 @@ public class DeleteOnCloseTest extends BrokerAdminUsingTestBase
             target.setDynamicNodeProperties(Collections.singletonMap(Session_1_0.LIFETIME_POLICY, new DeleteOnClose()));
             target.setDynamic(true);
             final Interaction interaction = transport.newInteraction();
-            final Attach attachResponse = interaction.negotiateProtocol().consumeResponse()
-                                                     .open().consumeResponse(Open.class)
+            final Attach attachResponse = interaction.negotiateOpen()
                                                      .begin().consumeResponse(Begin.class)
                                                      .attachRole(Role.SENDER)
                                                      .attachTarget(target)
@@ -150,8 +148,7 @@ public class DeleteOnCloseTest extends BrokerAdminUsingTestBase
             source.setDynamicNodeProperties(Collections.singletonMap(Session_1_0.LIFETIME_POLICY, new DeleteOnClose()));
             source.setDynamic(true);
             final Interaction interaction = transport.newInteraction();
-            final Attach attachResponse = interaction.negotiateProtocol().consumeResponse()
-                                                     .open().consumeResponse(Open.class)
+            final Attach attachResponse = interaction.negotiateOpen()
                                                      .begin().consumeResponse(Begin.class)
                                                      .attachRole(Role.RECEIVER)
                                                      .attachSource(source)
@@ -195,8 +192,7 @@ public class DeleteOnCloseTest extends BrokerAdminUsingTestBase
             source.setExpiryPolicy(TerminusExpiryPolicy.NEVER);
             source.setDynamic(true);
             final Interaction interaction = transport.newInteraction();
-            final Attach attachResponse = interaction.negotiateProtocol().consumeResponse()
-                                                     .open().consumeResponse(Open.class)
+            final Attach attachResponse = interaction.negotiateOpen()
                                                      .begin().consumeResponse(Begin.class)
                                                      .attachRole(Role.RECEIVER)
                                                      .attachSource(source)
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MessageFormat.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MessageFormat.java
index dfca049..f92beb1 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MessageFormat.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MessageFormat.java
@@ -35,7 +35,6 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Attach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Begin;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Disposition;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
-import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
 import org.apache.qpid.tests.protocol.SpecificationTest;
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
@@ -67,8 +66,7 @@ public class MessageFormat extends BrokerAdminUsingTestBase
             QpidByteBuffer[] payloads = Utils.splitPayload(getTestName(), 2);
 
             transport.newInteraction()
-                     .negotiateProtocol().consumeResponse()
-                     .open().consumeResponse(Open.class)
+                     .negotiateOpen()
                      .begin().consumeResponse(Begin.class)
                      .attachRole(Role.SENDER)
                      .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MultiTransferTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MultiTransferTest.java
index 96920c6..c9571df 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MultiTransferTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MultiTransferTest.java
@@ -40,14 +40,9 @@ import org.apache.qpid.server.protocol.v1_0.type.UnsignedInteger;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.Accepted;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Attach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Begin;
-import org.apache.qpid.server.protocol.v1_0.type.transport.Close;
-import org.apache.qpid.server.protocol.v1_0.type.transport.Detach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Disposition;
-import org.apache.qpid.server.protocol.v1_0.type.transport.End;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
-import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
-import org.apache.qpid.tests.protocol.ChannelClosedResponse;
 import org.apache.qpid.tests.protocol.SpecificationTest;
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
 import org.apache.qpid.tests.protocol.v1_0.Interaction;
@@ -83,8 +78,7 @@ public class MultiTransferTest extends BrokerAdminUsingTestBase
             final Binary deliveryTag = new Binary("testTransfer".getBytes(UTF_8));
 
             Interaction interaction = transport.newInteraction();
-            Disposition disposition = interaction.negotiateProtocol().consumeResponse()
-                                                 .open().consumeResponse(Open.class)
+            Disposition disposition = interaction.negotiateOpen()
                                                  .begin().consumeResponse(Begin.class)
                                                  .attachRole(Role.SENDER)
                                                  .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -129,8 +123,7 @@ public class MultiTransferTest extends BrokerAdminUsingTestBase
             final Binary deliveryTag = new Binary("testTransfer".getBytes(UTF_8));
 
             Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol().consumeResponse()
-                       .open().consumeResponse(Open.class)
+            interaction.negotiateOpen()
                        .begin().consumeResponse(Begin.class)
                        .attachRole(Role.SENDER)
                        .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -190,8 +183,7 @@ public class MultiTransferTest extends BrokerAdminUsingTestBase
             final Binary deliveryTag = new Binary("testTransfer".getBytes(UTF_8));
 
             Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol().consumeResponse()
-                       .open().consumeResponse(Open.class)
+            interaction.negotiateOpen()
                        .begin().consumeResponse(Begin.class)
                        .attachRole(Role.SENDER)
                        .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -241,8 +233,7 @@ public class MultiTransferTest extends BrokerAdminUsingTestBase
 
             Interaction interaction = transport.newInteraction();
 
-            interaction.negotiateProtocol().consumeResponse()
-                       .open().consumeResponse(Open.class)
+            interaction.negotiateOpen()
                        .begin().consumeResponse(Begin.class)
 
                        .attachName("testLink1")
@@ -345,8 +336,7 @@ public class MultiTransferTest extends BrokerAdminUsingTestBase
 
             Interaction interaction = transport.newInteraction();
 
-            interaction.negotiateProtocol().consumeResponse()
-                       .open().consumeResponse(Open.class)
+            interaction.negotiateOpen()
                        .begin().consumeResponse(Begin.class)
 
                        .attachRole(Role.SENDER)
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/OutcomeTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/OutcomeTest.java
index 6fd1b58..f65ab0e 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/OutcomeTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/OutcomeTest.java
@@ -45,9 +45,9 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Disposition;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
+import org.apache.qpid.tests.protocol.SpecificationTest;
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
 import org.apache.qpid.tests.protocol.v1_0.Interaction;
-import org.apache.qpid.tests.protocol.SpecificationTest;
 import org.apache.qpid.tests.protocol.v1_0.Utils;
 import org.apache.qpid.tests.utils.BrokerAdmin;
 import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
@@ -76,8 +76,7 @@ public class OutcomeTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction()
-                                                     .negotiateProtocol().consumeResponse()
-                                                     .open().consumeResponse(Open.class)
+                                                     .negotiateOpen()
                                                      .begin().consumeResponse(Begin.class)
                                                      .attachRole(Role.RECEIVER)
                                                      .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -133,8 +132,7 @@ public class OutcomeTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             Interaction interaction = transport.newInteraction();
-            Disposition disposition = interaction.negotiateProtocol().consumeResponse()
-                                                 .open().consumeResponse(Open.class)
+            Disposition disposition = interaction.negotiateOpen()
                                                  .begin().consumeResponse(Begin.class)
                                                  .attachRole(Role.SENDER)
                                                  .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/TransferTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/TransferTest.java
index 9d81ee7..1142dfc 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/TransferTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/TransferTest.java
@@ -109,8 +109,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             Interaction interact = transport.newInteraction();
-            Response<?> response = interact.negotiateProtocol().consumeResponse()
-                                           .open().consumeResponse(Open.class)
+            Response<?> response = interact.negotiateOpen()
                                            .begin().consumeResponse(Begin.class)
                                            .attachRole(Role.SENDER)
                                            .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -142,8 +141,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             Interaction interact = transport.newInteraction();
-            Response<?> response = interact.negotiateProtocol().consumeResponse()
-                                           .open().consumeResponse(Open.class)
+            Response<?> response = interact.negotiateOpen()
                                            .begin().consumeResponse(Begin.class)
                                            .attachRole(Role.SENDER)
                                            .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -175,8 +173,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             Interaction interaction = transport.newInteraction()
-                                               .negotiateProtocol().consumeResponse()
-                                               .open().consumeResponse(Open.class)
+                                               .negotiateOpen()
                                                .begin().consumeResponse(Begin.class)
                                                .attachRole(Role.SENDER)
                                                .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -210,8 +207,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
         {
             final UnsignedInteger linkHandle = UnsignedInteger.ONE;
             Disposition responseDisposition = transport.newInteraction()
-                                                       .negotiateProtocol().consumeResponse()
-                                                       .open().consumeResponse(Open.class)
+                                                       .negotiateOpen()
                                                        .begin().consumeResponse(Begin.class)
                                                        .attachRole(Role.SENDER)
                                                        .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -244,8 +240,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
             final UnsignedInteger link2Handle = UnsignedInteger.valueOf(2);
             final Binary deliveryTag = new Binary("deliveryTag".getBytes(StandardCharsets.UTF_8));
             final Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol().consumeResponse()
-                                     .open().consumeResponse(Open.class)
+            interaction.negotiateOpen()
                                      .begin().consumeResponse(Begin.class)
 
                                      .attachName("test1")
@@ -302,8 +297,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             Disposition responseDisposition = transport.newInteraction()
-                                                       .negotiateProtocol().consumeResponse()
-                                                       .open().consumeResponse(Open.class)
+                                                       .negotiateOpen()
                                                        .begin().consumeResponse(Begin.class)
                                                        .attachRole(Role.SENDER)
                                                        .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -335,8 +329,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             Response<?> response = transport.newInteraction()
-                                     .negotiateProtocol().consumeResponse()
-                                     .open().consumeResponse(Open.class)
+                                     .negotiateOpen()
                                      .begin().consumeResponse(Begin.class)
                                      .attachRole(Role.SENDER)
                                      .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -411,8 +404,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
             messageEncoder.setHeader(header);
             messageEncoder.addData(getTestName());
             final Disposition receivedDisposition = transport.newInteraction()
-                                                             .negotiateProtocol().consumeResponse()
-                                                             .open().consumeResponse(Open.class)
+                                                             .negotiateOpen()
                                                              .begin().consumeResponse(Begin.class)
                                                              .attachRole(Role.SENDER)
                                                              .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -459,8 +451,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
             messageEncoder.setHeader(header);
             messageEncoder.addData(getTestName());
             final Response<?> response = transport.newInteraction()
-                                                  .negotiateProtocol().consumeResponse()
-                                                  .open().consumeResponse(Open.class)
+                                                  .negotiateOpen()
                                                   .begin().consumeResponse(Begin.class)
                                                   .attachRole(Role.SENDER)
                                                   .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -504,8 +495,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction()
-                                                     .negotiateProtocol().consumeResponse()
-                                                     .open().consumeResponse()
+                                                     .negotiateOpen()
                                                      .begin().consumeResponse()
                                                      .attachRole(Role.RECEIVER)
                                                      .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -543,8 +533,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction()
-                                                     .negotiateProtocol().consumeResponse()
-                                                     .open().consumeResponse()
+                                                     .negotiateOpen()
                                                      .begin().consumeResponse()
                                                      .attachRole(Role.RECEIVER)
                                                      .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -579,8 +568,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction()
-                                                     .negotiateProtocol().consumeResponse()
-                                                     .open().consumeResponse()
+                                                     .negotiateOpen()
                                                      .begin().consumeResponse()
                                                      .attachRole(Role.RECEIVER)
                                                      .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -626,8 +614,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction()
-                                                     .negotiateProtocol().consumeResponse()
-                                                     .open().consumeResponse()
+                                                     .negotiateOpen()
                                                      .begin().consumeResponse()
                                                      .attachRole(Role.RECEIVER)
                                                      .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -684,8 +671,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction()
-                                                     .negotiateProtocol().consumeResponse()
-                                                     .open().consumeResponse()
+                                                     .negotiateOpen()
                                                      .begin().consumeResponse()
                                                      .attachRole(Role.RECEIVER)
                                                      .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -802,8 +788,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction()
-                                                     .negotiateProtocol().consumeResponse()
-                                                     .open().consumeResponse()
+                                                     .negotiateOpen()
                                                      .begin().consumeResponse()
                                                      .attachRole(Role.RECEIVER)
                                                      .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -845,10 +830,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
             final Binary deliveryTag = new Binary("testDeliveryTag".getBytes(UTF_8));
 
             Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol()
-                       .consumeResponse()
-                       .open()
-                       .consumeResponse(Open.class)
+            interaction.negotiateOpen()
                        .begin()
                        .consumeResponse(Begin.class)
                        .attachRole(Role.SENDER)
@@ -909,10 +891,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
             final Binary deliveryTag = new Binary("testDeliveryTag".getBytes(UTF_8));
 
             Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol()
-                       .consumeResponse()
-                       .open()
-                       .consumeResponse(Open.class)
+            interaction.negotiateOpen()
                        .begin()
                        .consumeResponse(Begin.class)
                        .attachRole(Role.SENDER)
@@ -953,8 +932,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
             final Binary deliveryTag = new Binary("testDeliveryTag".getBytes(UTF_8));
 
             Interaction interaction = transport.newInteraction();
-            Open open = interaction.negotiateProtocol().consumeResponse()
-                                   .open().consumeResponse(Open.class)
+            Open open = interaction.negotiateOpen()
                                    .getLatestResponse(Open.class);
 
             long maxFrameSize = open.getMaxFrameSize() == null ? Integer.MAX_VALUE : open.getMaxFrameSize().longValue();
@@ -1020,8 +998,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction()
-                                                     .negotiateProtocol().consumeResponse()
-                                                     .open().consumeResponse(Open.class)
+                                                     .negotiateOpen()
                                                      .begin().consumeResponse(Begin.class)
                                                      .attachRole(Role.SENDER)
                                                      .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -1062,8 +1039,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
         final String[] contents = Utils.createTestMessageContents(3, getTestName());
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
-            final Interaction interaction = transport.newInteraction().negotiateProtocol().consumeResponse()
-                                                     .open().consumeResponse(Open.class)
+            final Interaction interaction = transport.newInteraction().negotiateOpen()
                                                      .begin().consumeResponse(Begin.class)
                                                      .attachRole(Role.SENDER)
                                                      .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -1111,8 +1087,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction()
-                                                     .negotiateProtocol().consumeResponse()
-                                                     .open().consumeResponse()
+                                                     .negotiateOpen()
                                                      .begin().consumeResponse()
                                                      .attachRole(Role.RECEIVER)
                                                      .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -1163,8 +1138,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction()
-                                                     .negotiateProtocol().consumeResponse()
-                                                     .open().consumeResponse()
+                                                     .negotiateOpen()
                                                      .begin().consumeResponse()
                                                      .attachRole(Role.RECEIVER)
                                                      .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/DischargeTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/DischargeTest.java
index f14a306..3fecc02 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/DischargeTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/DischargeTest.java
@@ -50,7 +50,6 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Detach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Disposition;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Error;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
-import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.ReceiverSettleMode;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Transfer;
@@ -84,8 +83,7 @@ public class DischargeTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol().consumeResponse()
-                       .open().consumeResponse(Open.class)
+            interaction.negotiateOpen()
                        .begin().consumeResponse(Begin.class)
 
                        .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected, Rejected.REJECTED_SYMBOL)
@@ -117,8 +115,7 @@ public class DischargeTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol().consumeResponse()
-                                           .open().consumeResponse(Open.class)
+            interaction.negotiateOpen()
                                            .begin().consumeResponse(Begin.class)
                                            .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected, Accepted.ACCEPTED_SYMBOL)
                                            .txnDeclare();
@@ -149,8 +146,7 @@ public class DischargeTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol().consumeResponse()
-                       .open().consumeResponse(Open.class)
+            interaction.negotiateOpen()
                        .begin().consumeResponse(Begin.class)
 
                        .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected)
@@ -207,8 +203,7 @@ public class DischargeTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol().consumeResponse()
-                       .open().consumeResponse(Open.class)
+            interaction.negotiateOpen()
                        .begin().consumeResponse(Begin.class)
 
                        .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected)
@@ -248,8 +243,7 @@ public class DischargeTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol().consumeResponse()
-                       .open().consumeResponse(Open.class)
+            interaction.negotiateOpen()
                        .begin().consumeResponse(Begin.class)
 
                        .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected)
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/TransactionalTransferTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/TransactionalTransferTest.java
index 938e144..d215d91 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/TransactionalTransferTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/TransactionalTransferTest.java
@@ -53,7 +53,6 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Disposition;
 import org.apache.qpid.server.protocol.v1_0.type.transport.End;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Error;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
-import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.ReceiverSettleMode;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Transfer;
@@ -88,10 +87,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
             final UnsignedInteger linkHandle = UnsignedInteger.ONE;
 
             final Interaction interaction = transport.newInteraction();
-            Disposition responseDisposition = interaction.negotiateProtocol()
-                                                         .consumeResponse()
-                                                         .open()
-                                                         .consumeResponse(Open.class)
+            Disposition responseDisposition = interaction.negotiateOpen()
                                                          .begin()
                                                          .consumeResponse(Begin.class)
 
@@ -136,10 +132,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
             final UnsignedInteger linkHandle = UnsignedInteger.ONE;
 
             final Interaction interaction = transport.newInteraction();
-            Disposition responseDisposition = interaction.negotiateProtocol()
-                                                         .consumeResponse()
-                                                         .open()
-                                                         .consumeResponse(Open.class)
+            Disposition responseDisposition = interaction.negotiateOpen()
                                                          .begin()
                                                          .consumeResponse(Begin.class)
 
@@ -186,10 +179,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
             final UnsignedInteger linkHandle = UnsignedInteger.ONE;
 
             final Interaction interaction = transport.newInteraction();
-            Disposition responseDisposition = interaction.negotiateProtocol()
-                                                         .consumeResponse()
-                                                         .open()
-                                                         .consumeResponse(Open.class)
+            Disposition responseDisposition = interaction.negotiateOpen()
                                                          .begin()
                                                          .consumeResponse(Begin.class)
 
@@ -243,8 +233,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
 
             final Interaction interaction = transport.newInteraction();
 
-            ErrorCarryingFrameBody response = interaction.negotiateProtocol().consumeResponse()
-                                              .open().consumeResponse(Open.class)
+            ErrorCarryingFrameBody response = interaction.negotiateOpen()
                                               .begin().consumeResponse(Begin.class)
 
                                               .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected)
@@ -280,10 +269,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
         {
             final Interaction interaction = transport.newInteraction();
 
-            interaction.negotiateProtocol()
-                       .consumeResponse()
-                       .open()
-                       .consumeResponse(Open.class)
+            interaction.negotiateOpen()
                        .begin()
                        .consumeResponse(Begin.class)
 
@@ -329,10 +315,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol()
-                       .consumeResponse()
-                       .open()
-                       .consumeResponse(Open.class)
+            interaction.negotiateOpen()
                        .begin()
                        .consumeResponse(Begin.class)
 
@@ -385,8 +368,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            List<Transfer> transfers = interaction.negotiateProtocol().consumeResponse()
-                                                  .open().consumeResponse(Open.class)
+            List<Transfer> transfers = interaction.negotiateOpen()
                                                   .begin().consumeResponse(Begin.class)
 
                                                   .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected)
@@ -443,10 +425,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol()
-                       .consumeResponse()
-                       .open()
-                       .consumeResponse(Open.class)
+            interaction.negotiateOpen()
                        .begin()
                        .consumeResponse(Begin.class)
 
@@ -504,10 +483,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol()
-                       .consumeResponse()
-                       .open()
-                       .consumeResponse(Open.class)
+            interaction.negotiateOpen()
                        .begin()
                        .consumeResponse(Begin.class)
 
@@ -570,10 +546,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol()
-                       .consumeResponse()
-                       .open()
-                       .consumeResponse(Open.class)
+            interaction.negotiateOpen()
                        .begin()
                        .consumeResponse(Begin.class)
 
@@ -635,10 +608,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            ErrorCarryingFrameBody response = interaction.negotiateProtocol()
-                                              .consumeResponse()
-                                              .open()
-                                              .consumeResponse(Open.class)
+            ErrorCarryingFrameBody response = interaction.negotiateOpen()
                                               .begin()
                                               .consumeResponse(Begin.class)
 
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/connection/IdleTimeoutTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/connection/IdleTimeoutTest.java
index bcfa4a5..d024cab 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/connection/IdleTimeoutTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/connection/IdleTimeoutTest.java
@@ -59,9 +59,8 @@ public class IdleTimeoutTest extends BrokerAdminUsingTestBase
         {
             Interaction interaction = transport.newInteraction();
             Open responseOpen = interaction
-                    .negotiateProtocol().consumeResponse()
                     .openContainerId("testContainerId")
-                    .open().consumeResponse()
+                    .negotiateOpen()
                     .getLatestResponse(Open.class);
             assertThat(responseOpen.getIdleTimeOut().intValue(), is(equalTo(IDLE_TIMEOUT_MS)));
 
@@ -80,10 +79,9 @@ public class IdleTimeoutTest extends BrokerAdminUsingTestBase
         {
             Interaction interaction = transport.newInteraction();
             Open responseOpen = interaction
-                    .negotiateProtocol().consumeResponse()
                     .openContainerId("testContainerId")
                     .openIdleTimeOut(IDLE_TIMEOUT_MS)
-                    .open().consumeResponse()
+                    .negotiateOpen()
                     .getLatestResponse(Open.class);
             assertThat(responseOpen.getIdleTimeOut().intValue(), is(equalTo(IDLE_TIMEOUT_MS)));
 
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/connection/OpenTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/connection/OpenTest.java
index f20b8c0..b607ca5 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/connection/OpenTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/connection/OpenTest.java
@@ -64,9 +64,8 @@ public class OpenTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(addr).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            Open responseOpen = interaction.negotiateProtocol().consumeResponse()
-                                           .openContainerId(null)
-                                           .open().consumeResponse()
+            Open responseOpen = interaction.openContainerId(null)
+                                           .negotiateOpen()
                                            .getLatestResponse(Open.class);
             assertThat(responseOpen.getContainerId(), is(notNullValue()));
 
@@ -92,9 +91,8 @@ public class OpenTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(addr).connect())
         {
             Interaction interaction = transport.newInteraction();
-            final Open responseOpen = interaction.negotiateProtocol().consumeResponse()
-                                                 .openContainerId("testContainerId")
-                                                 .open().consumeResponse()
+            final Open responseOpen = interaction.openContainerId("testContainerId")
+                                                 .negotiateOpen()
                                                  .getLatestResponse(Open.class);
 
             assertThat(responseOpen.getContainerId(), is(notNullValue()));
@@ -118,9 +116,8 @@ public class OpenTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(addr).connect())
         {
             Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol().consumeResponse()
-                       .openContainerId("testContainerId")
-                       .open().consumeResponse(Open.class)
+            interaction.openContainerId("testContainerId")
+                       .negotiateOpen()
                        .emptyFrame()
                        .doCloseConnection();
         }
@@ -136,10 +133,9 @@ public class OpenTest extends BrokerAdminUsingTestBase
         {
             Interaction interaction = transport.newInteraction();
             final int idleTimeOut = 1000;
-            Open responseOpen = interaction.negotiateProtocol().consumeResponse()
-                                           .openContainerId("testContainerId")
+            Open responseOpen = interaction.openContainerId("testContainerId")
                                            .openIdleTimeOut(idleTimeOut)
-                                           .open().consumeResponse()
+                                           .negotiateOpen()
                                            .getLatestResponse(Open.class);
 
             final UnsignedInteger peerIdleTimeOut = responseOpen.getIdleTimeOut();
@@ -164,10 +160,9 @@ public class OpenTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(addr).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            Open responseOpen = interaction.negotiateProtocol().consumeResponse()
-                                           .openContainerId("testContainerId")
+            Open responseOpen = interaction.openContainerId("testContainerId")
                                            .connectionChannel(UnsignedShort.valueOf((short) 1))
-                                           .open().consumeResponse()
+                                           .negotiateOpen()
                                            .getLatestResponse(Open.class);
             assertThat(responseOpen.getContainerId(), is(notNullValue()));
 
@@ -192,10 +187,9 @@ public class OpenTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(addr).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            Open responseOpen = interaction.negotiateProtocol().consumeResponse()
-                                           .openContainerId("testContainerId")
+            Open responseOpen = interaction.openContainerId("testContainerId")
                                            .openHostname("non-existing-virtual-host-" + System.currentTimeMillis())
-                                           .open().consumeResponse()
+                                           .negotiateOpen()
                                            .getLatestResponse(Open.class);
             assertThat(responseOpen.getContainerId(), is(notNullValue()));
 
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/AttachTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/AttachTest.java
index a6caac1..b79fc3a 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/AttachTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/AttachTest.java
@@ -42,7 +42,6 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Begin;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Detach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.End;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Error;
-import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
 import org.apache.qpid.tests.protocol.Response;
 import org.apache.qpid.tests.protocol.SpecificationTest;
@@ -63,8 +62,7 @@ public class AttachTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(addr).connect())
         {
             final Response<?> response = transport.newInteraction()
-                                                  .negotiateProtocol().consumeResponse()
-                                                  .open().consumeResponse(Open.class)
+                                                  .negotiateOpen()
                                                   .begin().consumeResponse(Begin.class)
                                                   .attachRole(null)
                                                   .attachHandle(null)
@@ -93,8 +91,7 @@ public class AttachTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(addr).connect())
         {
             final Attach responseAttach = transport.newInteraction()
-                                                   .negotiateProtocol().consumeResponse()
-                                                   .open().consumeResponse(Open.class)
+                                                   .negotiateOpen()
                                                    .begin().consumeResponse(Begin.class)
                                                    .attachRole(Role.SENDER)
                                                    .attachInitialDeliveryCount(UnsignedInteger.ZERO)
@@ -121,8 +118,7 @@ public class AttachTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(addr).connect())
         {
             final Attach responseAttach = transport.newInteraction()
-                                                   .negotiateProtocol().consumeResponse()
-                                                   .open().consumeResponse(Open.class)
+                                                   .negotiateOpen()
                                                    .begin().consumeResponse(Begin.class)
                                                    .attachRole(Role.RECEIVER)
                                                    .attachSourceAddress(queueName)
@@ -150,8 +146,7 @@ public class AttachTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(addr).connect())
         {
             Interaction interaction = transport.newInteraction();
-            final Attach responseAttach = interaction.negotiateProtocol().consumeResponse()
-                                                     .open().consumeResponse(Open.class)
+            final Attach responseAttach = interaction.negotiateOpen()
                                                      .begin().consumeResponse(Begin.class)
                                                      .attachRole(Role.RECEIVER)
                                                      .attachSourceAddress(queueName)
@@ -193,8 +188,7 @@ public class AttachTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(addr).connect())
         {
             Interaction interaction = transport.newInteraction();
-            final Attach responseAttach = interaction.negotiateProtocol().consumeResponse()
-                                                     .open().consumeResponse(Open.class)
+            final Attach responseAttach = interaction.negotiateOpen()
                                                      .begin().consumeResponse(Begin.class)
                                                      .attachRole(Role.SENDER)
                                                      .attachSource(null)
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/FlowTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/FlowTest.java
index 747fc02..5c62b85 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/FlowTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/FlowTest.java
@@ -43,7 +43,6 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Detach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.End;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Error;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
-import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
 import org.apache.qpid.server.protocol.v1_0.type.transport.SessionError;
 import org.apache.qpid.tests.protocol.Response;
@@ -66,8 +65,7 @@ public class FlowTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(addr).connect())
         {
             final Response<?> response = transport.newInteraction()
-                                                  .negotiateProtocol().consumeResponse()
-                                                  .open().consumeResponse(Open.class)
+                                                  .negotiateOpen()
                                                   .begin().consumeResponse(Begin.class)
                                                   .flowIncomingWindow(null)
                                                   .flowNextIncomingId(null)
@@ -95,8 +93,7 @@ public class FlowTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(addr).connect())
         {
             Flow responseFlow = transport.newInteraction()
-                                         .negotiateProtocol().consumeResponse()
-                                         .open().consumeResponse(Open.class)
+                                         .negotiateOpen()
                                          .begin().consumeResponse(Begin.class)
                                          .flowEcho(true)
                                          .flowOutgoingWindow(UnsignedInteger.ZERO)
@@ -123,8 +120,7 @@ public class FlowTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(addr).connect())
         {
             Flow responseFlow = transport.newInteraction()
-                                         .negotiateProtocol().consumeResponse()
-                                         .open().consumeResponse(Open.class)
+                                         .negotiateOpen()
                                          .begin().consumeResponse(Begin.class)
                                          .attachRole(Role.RECEIVER)
                                          .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -157,8 +153,7 @@ public class FlowTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(addr).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol().consumeResponse()
-                       .open().consumeResponse()
+            interaction.negotiateOpen()
                        .begin().consumeResponse()
                        .attachRole(Role.RECEIVER)
                        .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -196,8 +191,7 @@ public class FlowTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(addr).connect())
         {
             Flow responseFlow = transport.newInteraction()
-                                         .negotiateProtocol().consumeResponse()
-                                         .open().consumeResponse(Open.class)
+                                         .negotiateOpen()
                                          .begin().consumeResponse(Begin.class)
                                          .attachRole(Role.RECEIVER)
                                          .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -228,8 +222,7 @@ public class FlowTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(addr).connect())
         {
             End responseEnd = transport.newInteraction()
-                                       .negotiateProtocol().consumeResponse()
-                                       .open().consumeResponse(Open.class)
+                                       .negotiateOpen()
                                        .begin().consumeResponse(Begin.class)
                                        .flowEcho(true)
                                        .flowIncomingWindow(UnsignedInteger.ONE)
@@ -260,8 +253,7 @@ public class FlowTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(addr).connect())
         {
             Interaction interaction = transport.newInteraction()
-                                               .negotiateProtocol().consumeResponse()
-                                               .open().consumeResponse(Open.class)
+                                               .negotiateOpen()
                                                .begin().consumeResponse(Begin.class)
                                                .attachRole(Role.RECEIVER)
                                                .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -315,8 +307,7 @@ public class FlowTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(addr).connect())
         {
             Interaction interaction = transport.newInteraction()
-                                               .negotiateProtocol().consumeResponse()
-                                               .open().consumeResponse(Open.class)
+                                               .negotiateOpen()
                                                .begin().consumeResponse(Begin.class)
                                                .attachRole(Role.RECEIVER)
                                                .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -387,8 +378,7 @@ public class FlowTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(addr).connect())
         {
             Interaction interaction = transport.newInteraction()
-                                               .negotiateProtocol().consumeResponse()
-                                               .open().consumeResponse(Open.class)
+                                               .negotiateOpen()
                                                .begin().consumeResponse(Begin.class)
                                                .attachRole(Role.RECEIVER)
                                                .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -454,8 +444,7 @@ public class FlowTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(addr).connect())
         {
             Interaction interaction = transport.newInteraction()
-                                               .negotiateProtocol().consumeResponse()
-                                               .open().consumeResponse(Open.class)
+                                               .negotiateOpen()
                                                .begin().consumeResponse(Begin.class)
                                                .attachRole(Role.RECEIVER)
                                                .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -545,8 +534,7 @@ public class FlowTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(addr).connect())
         {
             Interaction interaction = transport.newInteraction()
-                                               .negotiateProtocol().consumeResponse()
-                                               .open().consumeResponse(Open.class)
+                                               .negotiateOpen()
                                                .begin().consumeResponse(Begin.class)
                                                .attachRole(Role.RECEIVER)
                                                .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/LinkStealingTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/LinkStealingTest.java
index fabcfa9..e4feb26 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/LinkStealingTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/LinkStealingTest.java
@@ -40,7 +40,6 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Detach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Disposition;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
 import org.apache.qpid.server.protocol.v1_0.type.transport.LinkError;
-import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
 import org.apache.qpid.tests.protocol.SpecificationTest;
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
@@ -67,8 +66,7 @@ public class LinkStealingTest extends BrokerAdminUsingTestBase
         {
             final Interaction interaction = transport.newInteraction();
             final Attach responseAttach = interaction
-                    .negotiateProtocol().consumeResponse()
-                    .open().consumeResponse(Open.class)
+                    .negotiateOpen()
                     .begin().consumeResponse(Begin.class)
                     .attachRole(Role.SENDER)
                     .attachInitialDeliveryCount(UnsignedInteger.ZERO)
@@ -106,8 +104,7 @@ public class LinkStealingTest extends BrokerAdminUsingTestBase
         {
             final Interaction interaction = transport.newInteraction();
             final String linkName = "test";
-            final Attach responseAttach = interaction.negotiateProtocol().consumeResponse()
-                                                     .open().consumeResponse(Open.class)
+            final Attach responseAttach = interaction.negotiateOpen()
                                                      .begin().consumeResponse(Begin.class)
                                                      .attachRole(Role.SENDER)
                                                      .attachName(linkName)
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/ResumeDeliveriesTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/ResumeDeliveriesTest.java
index e8b6160..30c12ff 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/ResumeDeliveriesTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/ResumeDeliveriesTest.java
@@ -103,8 +103,7 @@ public class ResumeDeliveriesTest extends BrokerAdminUsingTestBase
 
             final UnsignedInteger linkHandle1 = UnsignedInteger.ZERO;
             final Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol().consumeResponse()
-                       .open().consumeResponse(Open.class)
+            interaction.negotiateOpen()
                        .begin().consumeResponse(Begin.class);
 
             // 1. attach with ReceiverSettleMode.SECOND
@@ -161,11 +160,10 @@ public class ResumeDeliveriesTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol().consumeResponse();
 
             // 0. Open connection with small max-frame-size
             final Open open = interaction.openMaxFrameSize(UnsignedInteger.valueOf(MIN_MAX_FRAME_SIZE))
-                                         .open().consumeResponse()
+                                         .negotiateOpen()
                                          .getLatestResponse(Open.class);
             interaction.begin().consumeResponse(Begin.class);
 
@@ -256,11 +254,10 @@ public class ResumeDeliveriesTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol().consumeResponse();
 
             // 0. Open connection with small max-frame-size
             final Open open = interaction.openMaxFrameSize(UnsignedInteger.valueOf(MIN_MAX_FRAME_SIZE))
-                                         .open().consumeResponse()
+                                         .negotiateOpen()
                                          .getLatestResponse(Open.class);
             interaction.begin().consumeResponse(Begin.class);
 
@@ -347,11 +344,9 @@ public class ResumeDeliveriesTest extends BrokerAdminUsingTestBase
             //    with rcv-settle-mode=second, snd-settle-mode=unsettled,
             //    flow with incoming-window=MAX_INTEGER and link-credit=MAX_INTEGER
             final Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol()
-                       .consumeResponse()
+            interaction.consumeResponse()
                        .openMaxFrameSize(UnsignedInteger.valueOf(MIN_MAX_FRAME_SIZE))
-                       .open()
-                       .consumeResponse()
+                       .negotiateOpen()
                        .begin()
                        .consumeResponse(Begin.class)
                        .attachRole(Role.RECEIVER)
@@ -462,8 +457,7 @@ public class ResumeDeliveriesTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction()
-                                                     .negotiateProtocol().consumeResponse()
-                                                     .open().consumeResponse()
+                                                     .negotiateOpen()
                                                      .begin().consumeResponse()
                                                      .attachRole(Role.RECEIVER)
                                                      .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -514,8 +508,7 @@ public class ResumeDeliveriesTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction()
-                                                     .negotiateProtocol().consumeResponse()
-                                                     .open().consumeResponse()
+                                                     .negotiateOpen()
                                                      .begin().consumeResponse()
                                                      .attachRole(Role.RECEIVER)
                                                      .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -600,8 +593,7 @@ public class ResumeDeliveriesTest extends BrokerAdminUsingTestBase
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
             final Interaction interaction = transport.newInteraction()
-                                                     .negotiateProtocol().consumeResponse()
-                                                     .open().consumeResponse()
+                                                     .negotiateOpen()
                                                      .begin().consumeResponse()
                                                      .attachRole(Role.RECEIVER)
                                                      .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
@@ -686,8 +678,7 @@ public class ResumeDeliveriesTest extends BrokerAdminUsingTestBase
 
             final UnsignedInteger linkHandle1 = UnsignedInteger.ZERO;
             final Interaction interaction = transport.newInteraction();
-            interaction.negotiateProtocol().consumeResponse()
-                       .open().consumeResponse(Open.class)
+            interaction.negotiateOpen()
                        .begin().consumeResponse(Begin.class);
 
             // 1. attach with ReceiverSettleMode.SECOND
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/session/BeginTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/session/BeginTest.java
index e05de00..320294a 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/session/BeginTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/session/BeginTest.java
@@ -43,11 +43,11 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.End;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Error;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.tests.protocol.Response;
+import org.apache.qpid.tests.protocol.SpecificationTest;
+import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
 import org.apache.qpid.tests.protocol.v1_0.Interaction;
 import org.apache.qpid.tests.utils.BrokerAdmin;
-import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
 import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
-import org.apache.qpid.tests.protocol.SpecificationTest;
 
 public class BeginTest extends BrokerAdminUsingTestBase
 {
@@ -60,8 +60,7 @@ public class BeginTest extends BrokerAdminUsingTestBase
         try(FrameTransport transport = new FrameTransport(addr).connect())
         {
             final Response<?> response =  transport.newInteraction()
-                                           .negotiateProtocol().consumeResponse()
-                                           .open().consumeResponse(Open.class)
+                                           .negotiateOpen()
                                            .beginNextOutgoingId(null)
                                            .beginIncomingWindow(null)
                                            .beginOutgoingWindow(null)
@@ -89,8 +88,7 @@ public class BeginTest extends BrokerAdminUsingTestBase
             final UnsignedShort channel = UnsignedShort.valueOf(37);
             Interaction interaction = transport.newInteraction();
             Begin responseBegin = interaction
-                                           .negotiateProtocol().consumeResponse()
-                                           .open().consumeResponse(Open.class)
+                                           .negotiateOpen()
                                            .sessionChannel(channel)
                                            .begin().consumeResponse()
                                            .getLatestResponse(Begin.class);
@@ -116,9 +114,8 @@ public class BeginTest extends BrokerAdminUsingTestBase
         {
             final Interaction interaction = transport.newInteraction();
             final int ourChannelMax = 5;
-            final Open responseOpen = interaction.negotiateProtocol().consumeResponse()
-                                                 .openChannelMax(UnsignedShort.valueOf(ourChannelMax))
-                                                 .open().consumeResponse(Open.class).getLatestResponse(Open.class);
+            final Open responseOpen = interaction.openChannelMax(UnsignedShort.valueOf(ourChannelMax))
+                                                 .negotiateOpen().getLatestResponse(Open.class);
 
             final UnsignedShort remoteChannelMax = responseOpen.getChannelMax();
             assumeThat(remoteChannelMax, is(notNullValue()));


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


[qpid-broker-j] 04/08: QPID-8349: [Tests][AMQP 1.0] Assert coordinator attach responses

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

orudyy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/qpid-broker-j.git

commit 38f737589969177b06727ba7920edeec96cfc0c2
Author: Alex Rudyy <or...@apache.org>
AuthorDate: Tue Aug 27 16:48:49 2019 +0100

    QPID-8349: [Tests][AMQP 1.0] Assert coordinator attach responses
---
 .../qpid/tests/protocol/v1_0/Interaction.java      | 43 ++++++++++++++++++++--
 .../anonymousterminus/AnonymousTerminusTest.java   | 28 ++++++++------
 .../extensions/qpid/queue/QueueDeletionTest.java   | 12 +++++-
 .../protocol/v1_0/messaging/TransferTest.java      | 10 ++++-
 .../protocol/v1_0/transaction/DischargeTest.java   | 27 +++++++-------
 .../transaction/TransactionalTransferTest.java     | 30 +++++++++------
 6 files changed, 108 insertions(+), 42 deletions(-)

diff --git a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Interaction.java b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Interaction.java
index ff0fa60..6631590 100644
--- a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Interaction.java
+++ b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Interaction.java
@@ -982,10 +982,23 @@ public class Interaction extends AbstractInteraction<Interaction>
 
     public Interaction txnAttachCoordinatorLink(final UnsignedInteger handle) throws Exception
     {
-        return txnAttachCoordinatorLink(handle, Accepted.ACCEPTED_SYMBOL, Rejected.REJECTED_SYMBOL);
+        return txnAttachCoordinatorLink(handle,
+                                        this::txDefaultUnexpectedResponseHandler,
+                                        Accepted.ACCEPTED_SYMBOL,
+                                        Rejected.REJECTED_SYMBOL);
     }
 
     public Interaction txnAttachCoordinatorLink(final UnsignedInteger handle,
+                                                final Consumer<Response<?>> unexpectedResponseHandler) throws Exception
+    {
+        return txnAttachCoordinatorLink(handle,
+                                        unexpectedResponseHandler,
+                                        Accepted.ACCEPTED_SYMBOL,
+                                        Rejected.REJECTED_SYMBOL);
+    }
+
+    public Interaction txnAttachCoordinatorLink(final UnsignedInteger handle,
+                                                final Consumer<Response<?>> unexpectedResponseHandler,
                                                 final Symbol... outcomes) throws Exception
     {
         Attach attach = new Attach();
@@ -999,12 +1012,29 @@ public class Interaction extends AbstractInteraction<Interaction>
         source.setOutcomes(outcomes);
         _transactionalState = new InteractionTransactionalState(handle);
         sendPerformativeAndChainFuture(attach, _sessionChannel);
-        consumeResponse(Attach.class);
-        final Flow flow = consumeResponse(Flow.class).getLatestResponse(Flow.class);
+
+        // attach expected
+        Consumer<Response<?>> handler = unexpectedResponseHandler == null
+                ? this::txDefaultUnexpectedResponseHandler
+                : unexpectedResponseHandler;
+        consumeResponse().assertLatestResponse(handler);
+
+        // flow expected
+        consumeResponse().assertLatestResponse(handler);
+
+        Flow flow = getLatestResponse(Flow.class);
         _coordinatorCredits.set(flow.getLinkCredit().longValue());
         return this;
     }
 
+    private void txDefaultUnexpectedResponseHandler(Response<?> r)
+    {
+        if (r == null || r.getBody() == null || !(r.getBody() instanceof Attach || r.getBody() instanceof Flow))
+        {
+            throw new IllegalStateException(String.format("Could not attach coordinator link. Got %s", r));
+        }
+    }
+
     public Interaction txnDeclare() throws Exception
     {
         sendPayloadToCoordinator(new Declare(), _transactionalState.getHandle());
@@ -1284,6 +1314,13 @@ public class Interaction extends AbstractInteraction<Interaction>
         return this;
     }
 
+    public Interaction assertLatestResponse(Consumer<Response<?>> assertion)
+    {
+        Response<?> latestResponse = getLatestResponse();
+        assertion.accept(latestResponse);
+        return this;
+    }
+
     public void detachEndCloseUnconditionally() throws Exception
     {
         detachClose(true).detach().end().close().sync();
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/anonymousterminus/AnonymousTerminusTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/anonymousterminus/AnonymousTerminusTest.java
index 4748f10..58864b4 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/anonymousterminus/AnonymousTerminusTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/anonymousterminus/AnonymousTerminusTest.java
@@ -20,19 +20,19 @@
  */
 package org.apache.qpid.tests.protocol.v1_0.extensions.anonymousterminus;
 
-
-import static org.hamcrest.CoreMatchers.hasItem;
+import static org.hamcrest.CoreMatchers.anyOf;
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.notNullValue;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.greaterThan;
+import static org.hamcrest.Matchers.hasItemInArray;
 import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.oneOf;
 import static org.junit.Assume.assumeThat;
 
 import java.net.InetSocketAddress;
 import java.nio.charset.StandardCharsets;
-import java.util.Arrays;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -58,6 +58,7 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
 import org.apache.qpid.server.util.StringUtil;
+import org.apache.qpid.tests.protocol.Response;
 import org.apache.qpid.tests.protocol.SpecificationTest;
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
 import org.apache.qpid.tests.protocol.v1_0.Interaction;
@@ -193,7 +194,7 @@ public class AnonymousTerminusTest extends BrokerAdminUsingTestBase
             Rejected rejected = (Rejected)dispositionState;
             Error error = rejected.getError();
             assertThat(error, is(notNullValue()));
-            assertThat(error.getCondition(), is(equalTo(AmqpError.NOT_FOUND)));
+            assertThat(error.getCondition(), is(oneOf(AmqpError.NOT_FOUND, AmqpError.NOT_ALLOWED)));
             assertThat(error.getInfo(), is(notNullValue()));
             assertThat(error.getInfo().get(DELIVERY_TAG), is(equalTo(_deliveryTag)));
         }
@@ -253,7 +254,7 @@ public class AnonymousTerminusTest extends BrokerAdminUsingTestBase
             interaction.begin()
                        .consumeResponse(Begin.class)
 
-                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO)
+                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected)
                        .txnDeclare()
 
                        .attachRole(Role.SENDER)
@@ -287,7 +288,7 @@ public class AnonymousTerminusTest extends BrokerAdminUsingTestBase
             interaction.begin()
                        .consumeResponse(Begin.class)
 
-                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO)
+                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected)
                        .txnDeclare()
 
                        .attachRole(Role.SENDER)
@@ -332,7 +333,7 @@ public class AnonymousTerminusTest extends BrokerAdminUsingTestBase
             interaction.begin()
                        .consumeResponse(Begin.class)
 
-                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO)
+                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected)
                        .txnDeclare()
 
                        .attachRole(Role.SENDER)
@@ -380,7 +381,7 @@ public class AnonymousTerminusTest extends BrokerAdminUsingTestBase
             interaction.begin()
                        .consumeResponse(Begin.class)
 
-                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO)
+                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected)
                        .txnDeclare()
 
                        .attachRole(Role.SENDER)
@@ -451,7 +452,7 @@ public class AnonymousTerminusTest extends BrokerAdminUsingTestBase
                        .consumeResponse(Begin.class)
 
                        // attaching coordinator link with supported outcomes Accepted and Rejected
-                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO)
+                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected)
                        .txnDeclare()
 
                        .attachRole(Role.SENDER)
@@ -516,7 +517,7 @@ public class AnonymousTerminusTest extends BrokerAdminUsingTestBase
             interaction.begin()
                        .consumeResponse(Begin.class)
 
-                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO, Accepted.ACCEPTED_SYMBOL)
+                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected, Accepted.ACCEPTED_SYMBOL)
                        .txnDeclare()
 
                        .attachRole(Role.SENDER)
@@ -555,7 +556,7 @@ public class AnonymousTerminusTest extends BrokerAdminUsingTestBase
                    .open().consumeResponse(Open.class);
 
         Open open = interaction.getLatestResponse(Open.class);
-        assumeThat(Arrays.asList(open.getOfferedCapabilities()), hasItem(ANONYMOUS_RELAY));
+        assumeThat(open.getOfferedCapabilities(), hasItemInArray((ANONYMOUS_RELAY)));
         return interaction;
     }
 
@@ -574,4 +575,9 @@ public class AnonymousTerminusTest extends BrokerAdminUsingTestBase
         assumeThat(flow.getLinkCredit(), is(greaterThan(UnsignedInteger.ZERO)));
     }
 
+    private void coordinatorAttachExpected(final Response<?> response)
+    {
+        assertThat(response, is(notNullValue()));
+        assumeThat(response.getBody(), anyOf(instanceOf(Attach.class), instanceOf(Flow.class)));
+    }
 }
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/queue/QueueDeletionTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/queue/QueueDeletionTest.java
index 8cd435b..dff32cc 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/queue/QueueDeletionTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/qpid/queue/QueueDeletionTest.java
@@ -21,12 +21,14 @@
 package org.apache.qpid.tests.protocol.v1_0.extensions.qpid.queue;
 
 import static org.apache.qpid.tests.utils.BrokerAdmin.KIND_BROKER_J;
+import static org.hamcrest.CoreMatchers.anyOf;
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.notNullValue;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.greaterThan;
 import static org.hamcrest.Matchers.is;
+import static org.junit.Assume.assumeThat;
 
 import java.net.InetSocketAddress;
 
@@ -139,7 +141,7 @@ public class QueueDeletionTest extends BrokerAdminUsingTestBase
                                        .begin()
                                        .consumeResponse(Begin.class)
 
-                                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO)
+                                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected)
                                        .txnDeclare()
 
                                        .attachRole(Role.SENDER)
@@ -192,7 +194,7 @@ public class QueueDeletionTest extends BrokerAdminUsingTestBase
                                        .begin()
                                        .consumeResponse(Begin.class)
 
-                                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO)
+                                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected)
                                        .txnDeclare()
 
                                        .attachRole(Role.RECEIVER)
@@ -276,4 +278,10 @@ public class QueueDeletionTest extends BrokerAdminUsingTestBase
         assertThat(error, is(notNullValue()));
         assertThat(error.getCondition(), is(equalTo(TransactionError.TRANSACTION_ROLLBACK)));
     }
+
+    private void coordinatorAttachExpected(final Response<?> response)
+    {
+        assertThat(response, is(notNullValue()));
+        assumeThat(response.getBody(), anyOf(instanceOf(Attach.class), instanceOf(Flow.class)));
+    }
 }
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/TransferTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/TransferTest.java
index 7b42edb..792bf30 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/TransferTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/TransferTest.java
@@ -1066,7 +1066,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
             Flow flow = interaction.getLatestResponse(Flow.class);
             assumeThat("insufficient credit for the test", flow.getLinkCredit().intValue(), is(greaterThan(2)));
 
-            interaction.txnAttachCoordinatorLink(UnsignedInteger.ONE)
+            interaction.txnAttachCoordinatorLink(UnsignedInteger.ONE, this::coordinatorAttachExpected)
                        .txnDeclare();
 
             interaction.transferDeliveryId()
@@ -1183,7 +1183,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
                 deliveryIds.add(interaction.getLatestDeliveryId());
             }
 
-            interaction.txnAttachCoordinatorLink(UnsignedInteger.ONE)
+            interaction.txnAttachCoordinatorLink(UnsignedInteger.ONE, this::coordinatorAttachExpected)
                        .txnDeclare();
 
             interaction.dispositionSettled(true)
@@ -1260,4 +1260,10 @@ public class TransferTest extends BrokerAdminUsingTestBase
     {
         assumeThat(attach.getRcvSettleMode(), is(equalTo(ReceiverSettleMode.SECOND)));
     }
+
+    private void coordinatorAttachExpected(final Response<?> response)
+    {
+        assertThat(response, is(notNullValue()));
+        assumeThat(response.getBody(), anyOf(instanceOf(Attach.class), instanceOf(Flow.class)));
+    }
 }
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/DischargeTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/DischargeTest.java
index a22c8fc..f14a306 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/DischargeTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/DischargeTest.java
@@ -22,6 +22,7 @@ package org.apache.qpid.tests.protocol.v1_0.transaction;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 import static org.apache.qpid.tests.utils.BrokerAdmin.KIND_BROKER_J;
+import static org.hamcrest.CoreMatchers.anyOf;
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.CoreMatchers.notNullValue;
@@ -53,6 +54,7 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.ReceiverSettleMode;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Transfer;
+import org.apache.qpid.tests.protocol.Response;
 import org.apache.qpid.tests.protocol.SpecificationTest;
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
 import org.apache.qpid.tests.protocol.v1_0.Interaction;
@@ -86,7 +88,7 @@ public class DischargeTest extends BrokerAdminUsingTestBase
                        .open().consumeResponse(Open.class)
                        .begin().consumeResponse(Begin.class)
 
-                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO, Rejected.REJECTED_SYMBOL)
+                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected, Rejected.REJECTED_SYMBOL)
                        .txnDeclare();
 
             assertThat(interaction.getCoordinatorLatestDeliveryState(), is(instanceOf(Declared.class)));
@@ -99,10 +101,7 @@ public class DischargeTest extends BrokerAdminUsingTestBase
             final Error error = ((Rejected) interaction.getCoordinatorLatestDeliveryState()).getError();
             assertThat(error, is(notNullValue()));
 
-            if (KIND_BROKER_J.equals(getBrokerAdmin().getKind()))
-            {
-                assertThat(error.getCondition(), is(equalTo(TransactionError.UNKNOWN_ID)));
-            }
+            assertThat(error.getCondition(), is(equalTo(TransactionError.UNKNOWN_ID)));
         }
     }
 
@@ -121,7 +120,7 @@ public class DischargeTest extends BrokerAdminUsingTestBase
             interaction.negotiateProtocol().consumeResponse()
                                            .open().consumeResponse(Open.class)
                                            .begin().consumeResponse(Begin.class)
-                                           .txnAttachCoordinatorLink(UnsignedInteger.ZERO, Accepted.ACCEPTED_SYMBOL)
+                                           .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected, Accepted.ACCEPTED_SYMBOL)
                                            .txnDeclare();
 
             assertThat(interaction.getCoordinatorLatestDeliveryState(), is(instanceOf(Declared.class)));
@@ -135,10 +134,7 @@ public class DischargeTest extends BrokerAdminUsingTestBase
             final Error error = detachResponse.getError();
             assertThat(error, is(notNullValue()));
 
-            if (KIND_BROKER_J.equals(getBrokerAdmin().getKind()))
-            {
-                assertThat(error.getCondition(), is(equalTo(TransactionError.UNKNOWN_ID)));
-            }
+            assertThat(error.getCondition(), is(equalTo(TransactionError.UNKNOWN_ID)));
         }
     }
 
@@ -157,7 +153,7 @@ public class DischargeTest extends BrokerAdminUsingTestBase
                        .open().consumeResponse(Open.class)
                        .begin().consumeResponse(Begin.class)
 
-                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO)
+                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected)
                        .txnDeclare()
 
                        .attachRole(Role.RECEIVER)
@@ -215,7 +211,7 @@ public class DischargeTest extends BrokerAdminUsingTestBase
                        .open().consumeResponse(Open.class)
                        .begin().consumeResponse(Begin.class)
 
-                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO)
+                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected)
                        .txnDeclare()
 
                        .attachRole(Role.SENDER)
@@ -256,7 +252,7 @@ public class DischargeTest extends BrokerAdminUsingTestBase
                        .open().consumeResponse(Open.class)
                        .begin().consumeResponse(Begin.class)
 
-                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO)
+                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected)
                        .txnDeclare()
 
                        .attachRole(Role.SENDER)
@@ -287,4 +283,9 @@ public class DischargeTest extends BrokerAdminUsingTestBase
         assertThat(receivedMessage, is(equalTo(getTestName())));
     }
 
+    private void coordinatorAttachExpected(final Response<?> response)
+    {
+        assertThat(response, is(notNullValue()));
+        assumeThat(response.getBody(), anyOf(instanceOf(Attach.class), instanceOf(Flow.class)));
+    }
 }
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/TransactionalTransferTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/TransactionalTransferTest.java
index 0827209..938e144 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/TransactionalTransferTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/TransactionalTransferTest.java
@@ -20,6 +20,7 @@
  */
 package org.apache.qpid.tests.protocol.v1_0.transaction;
 
+import static org.hamcrest.CoreMatchers.anyOf;
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.notNullValue;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -32,6 +33,7 @@ import java.net.InetSocketAddress;
 import java.util.Collections;
 import java.util.List;
 
+import org.hamcrest.Matchers;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
@@ -93,7 +95,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
                                                          .begin()
                                                          .consumeResponse(Begin.class)
 
-                                                         .txnAttachCoordinatorLink(UnsignedInteger.ZERO)
+                                                         .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected)
                                                          .txnDeclare()
 
                                                          .attachRole(Role.SENDER)
@@ -141,7 +143,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
                                                          .begin()
                                                          .consumeResponse(Begin.class)
 
-                                                         .txnAttachCoordinatorLink(UnsignedInteger.ZERO)
+                                                         .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected)
                                                          .txnDeclare()
 
                                                          .attachRole(Role.SENDER)
@@ -191,7 +193,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
                                                          .begin()
                                                          .consumeResponse(Begin.class)
 
-                                                         .txnAttachCoordinatorLink(UnsignedInteger.ZERO)
+                                                         .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected)
                                                          .txnDeclare()
 
                                                          .attachRole(Role.SENDER)
@@ -245,7 +247,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
                                               .open().consumeResponse(Open.class)
                                               .begin().consumeResponse(Begin.class)
 
-                                              .txnAttachCoordinatorLink(UnsignedInteger.ZERO)
+                                              .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected)
                                               .txnDeclare()
 
                                               .attachRole(Role.SENDER)
@@ -285,7 +287,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
                        .begin()
                        .consumeResponse(Begin.class)
 
-                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO)
+                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected)
                        .txnDeclare()
 
                        .attachRole(Role.RECEIVER)
@@ -334,7 +336,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
                        .begin()
                        .consumeResponse(Begin.class)
 
-                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO)
+                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected)
                        .txnDeclare()
 
                        .attachRole(Role.RECEIVER)
@@ -387,7 +389,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
                                                   .open().consumeResponse(Open.class)
                                                   .begin().consumeResponse(Begin.class)
 
-                                                  .txnAttachCoordinatorLink(UnsignedInteger.ZERO)
+                                                  .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected)
                                                   .txnDeclare()
 
                                                   .attachRole(Role.RECEIVER)
@@ -448,7 +450,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
                        .begin()
                        .consumeResponse(Begin.class)
 
-                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO)
+                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected)
                        .txnDeclare()
 
                        .attachRole(Role.RECEIVER)
@@ -509,7 +511,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
                        .begin()
                        .consumeResponse(Begin.class)
 
-                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO)
+                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected)
                        .txnDeclare()
 
                        .attachRole(Role.RECEIVER)
@@ -575,7 +577,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
                        .begin()
                        .consumeResponse(Begin.class)
 
-                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO)
+                       .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected)
                        .txnDeclare()
 
                        .attachRole(Role.RECEIVER)
@@ -640,7 +642,7 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
                                               .begin()
                                               .consumeResponse(Begin.class)
 
-                                              .txnAttachCoordinatorLink(UnsignedInteger.ZERO)
+                                              .txnAttachCoordinatorLink(UnsignedInteger.ZERO, this::coordinatorAttachExpected)
                                               .txnDeclare()
 
                                               .attachRole(Role.RECEIVER)
@@ -709,4 +711,10 @@ public class TransactionalTransferTest extends BrokerAdminUsingTestBase
     {
         assumeThat(attach.getRcvSettleMode(), is(equalTo(ReceiverSettleMode.SECOND)));
     }
+
+    private void coordinatorAttachExpected(final Response<?> response)
+    {
+        assertThat(response, is(notNullValue()));
+        assumeThat(response.getBody(), anyOf(instanceOf(Attach.class), instanceOf(Flow.class)));
+    }
 }


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


[qpid-broker-j] 05/08: QPID-8350: [Tests][AMQP 1.0] Improve various protocol tests

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

orudyy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/qpid-broker-j.git

commit 64e57a2d90917ade4dceff467d1bda4c66aa7ed0
Author: Alex Rudyy <or...@apache.org>
AuthorDate: Tue Aug 27 16:51:20 2019 +0100

    QPID-8350: [Tests][AMQP 1.0] Improve various protocol tests
---
 .../qpid/tests/protocol/v1_0/Interaction.java      |  5 --
 .../bindmapjms/TemporaryDestinationTest.java       | 16 ++++++
 .../extensions/soleconn/SoleConnectionAsserts.java | 11 ++--
 .../protocol/v1_0/messaging/DeleteOnCloseTest.java | 18 +++++--
 .../protocol/v1_0/messaging/MessageFormat.java     | 40 +++++++--------
 .../protocol/v1_0/messaging/MultiTransferTest.java |  6 ---
 .../tests/protocol/v1_0/messaging/OutcomeTest.java | 60 +++++++++++++++++++++-
 .../protocol/v1_0/messaging/TransferTest.java      | 34 ++++++++----
 .../v1_0/transport/ProtocolHeaderTest.java         |  1 +
 .../v1_0/transport/connection/OpenTest.java        |  3 ++
 .../protocol/v1_0/transport/link/AttachTest.java   |  5 +-
 .../protocol/v1_0/transport/link/FlowTest.java     | 29 +++--------
 .../v1_0/transport/link/ResumeDeliveriesTest.java  |  2 +-
 .../protocol/v1_0/transport/session/BeginTest.java |  4 +-
 14 files changed, 156 insertions(+), 78 deletions(-)

diff --git a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Interaction.java b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Interaction.java
index 6631590..152b73d 100644
--- a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Interaction.java
+++ b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/Interaction.java
@@ -641,11 +641,6 @@ public class Interaction extends AbstractInteraction<Interaction>
         return this;
     }
 
-    public Interaction flowNextIncomingIdFromLatestDelivery()
-    {
-        return flowNextIncomingId(_latestDeliveryId.add(UnsignedInteger.ONE));
-    }
-
     public Interaction flowNextIncomingIdFromPeerLatestSessionBeginAndDeliveryCount()
     {
         final Begin begin = getCachedResponse(Begin.class);
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/bindmapjms/TemporaryDestinationTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/bindmapjms/TemporaryDestinationTest.java
index 1dd63ea..bfa999a 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/bindmapjms/TemporaryDestinationTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/bindmapjms/TemporaryDestinationTest.java
@@ -20,10 +20,12 @@
 
 package org.apache.qpid.tests.protocol.v1_0.extensions.bindmapjms;
 
+import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.notNullValue;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.is;
+import static org.junit.Assume.assumeThat;
 
 import java.net.InetSocketAddress;
 import java.util.Collections;
@@ -46,6 +48,7 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Detach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
+import org.apache.qpid.tests.protocol.Response;
 import org.apache.qpid.tests.protocol.SpecificationTest;
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
 import org.apache.qpid.tests.protocol.v1_0.Interaction;
@@ -100,6 +103,7 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
                                                      .attachRole(Role.SENDER)
                                                      .attachTarget(target)
                                                      .attach().consumeResponse()
+                                                     .assertLatestResponse(this::assumeAttachResponse)
                                                      .getLatestResponse(Attach.class);
 
             assertThat(attachResponse.getSource(), is(notNullValue()));
@@ -151,6 +155,7 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
                                                            .attachHandle(senderHandle)
                                                            .attachTarget(target)
                                                            .attach().consumeResponse()
+                                                           .assertLatestResponse(this::assumeAttachResponse)
                                                            .getLatestResponse(Attach.class);
 
             assertThat(senderAttachResponse.getSource(), is(notNullValue()));
@@ -211,6 +216,7 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
                                                            .attachHandle(senderHandle)
                                                            .attachTarget(target)
                                                            .attach().consumeResponse()
+                                                           .assertLatestResponse(this::assumeAttachResponse)
                                                            .getLatestResponse(Attach.class);
 
             assertThat(senderAttachResponse.getSource(), is(notNullValue()));
@@ -250,6 +256,7 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
                                                            .attachHandle(senderHandle)
                                                            .attachTarget(target)
                                                            .attach().consumeResponse()
+                                                           .assertLatestResponse(this::assumeAttachResponse)
                                                            .getLatestResponse(Attach.class);
 
             assertThat(senderAttachResponse.getSource(), is(notNullValue()));
@@ -305,6 +312,7 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
                                                              .attachSource(source)
                                                              .attachHandle(receiverHandle)
                                                              .attach().consumeResponse()
+                                                             .assertLatestResponse(this::assumeAttachResponse)
                                                              .getLatestResponse(Attach.class);
 
             assertThat(receiverAttachResponse.getSource(), is(notNullValue()));
@@ -369,6 +377,7 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
                                                              .attachSource(source)
                                                              .attachHandle(receiverHandle)
                                                              .attach().consumeResponse()
+                                                             .assertLatestResponse(this::assumeAttachResponse)
                                                              .getLatestResponse(Attach.class);
 
             assertThat(receiverAttachResponse.getSource(), is(notNullValue()));
@@ -410,6 +419,7 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
                                                              .attachSource(source)
                                                              .attachHandle(receiverHandle)
                                                              .attach().consumeResponse()
+                                                             .assertLatestResponse(this::assumeAttachResponse)
                                                              .getLatestResponse(Attach.class);
 
             assertThat(receiverAttachResponse.getSource(), is(notNullValue()));
@@ -489,4 +499,10 @@ public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
         source.setAddress(name);
         return source;
     }
+
+    private void assumeAttachResponse(Response<?> response)
+    {
+        assertThat(response, notNullValue());
+        assumeThat(response.getBody(), instanceOf(Attach.class));
+    }
 }
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/SoleConnectionAsserts.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/SoleConnectionAsserts.java
index 298ab00..c6eb906 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/SoleConnectionAsserts.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/SoleConnectionAsserts.java
@@ -26,19 +26,18 @@ import static org.apache.qpid.server.protocol.v1_0.type.extensions.soleconn.Sole
 import static org.apache.qpid.server.protocol.v1_0.type.extensions.soleconn.SoleConnectionEnforcementPolicy.CLOSE_EXISTING;
 import static org.apache.qpid.server.protocol.v1_0.type.extensions.soleconn.SoleConnectionEnforcementPolicy.REFUSE_CONNECTION;
 import static org.hamcrest.CoreMatchers.anyOf;
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.CoreMatchers.notNullValue;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.hasItemInArray;
-import static org.hamcrest.Matchers.is;
 import static org.hamcrest.collection.IsMapContaining.hasEntry;
 import static org.hamcrest.collection.IsMapContaining.hasKey;
 import static org.junit.Assume.assumeThat;
 
 import java.util.Collections;
 
-import org.hamcrest.Matchers;
 
 import org.apache.qpid.server.protocol.v1_0.type.Symbol;
 import org.apache.qpid.server.protocol.v1_0.type.extensions.soleconn.SoleConnectionDetectionPolicy;
@@ -86,7 +85,7 @@ class SoleConnectionAsserts
         assumeThat(open.getProperties(), is(notNullValue()));
         assumeThat(open.getProperties(),
                    anyOf(hasEntry(SOLE_CONNECTION_ENFORCEMENT_POLICY, REFUSE_CONNECTION.getValue()),
-                         is(not(Matchers.hasKey(SOLE_CONNECTION_ENFORCEMENT_POLICY)))));
+                         is(not(hasKey(SOLE_CONNECTION_ENFORCEMENT_POLICY)))));
     }
 
     static void assumeDetectionPolicyStrong(Open open)
@@ -100,14 +99,14 @@ class SoleConnectionAsserts
     static void assertConnectionEstablishmentFailed(final Open open)
     {
         assertThat(open.getProperties(), is(notNullValue()));
-        assertThat(open.getProperties(), Matchers.hasKey(CONNECTION_ESTABLISHMENT_FAILED));
+        assertThat(open.getProperties(), hasKey(CONNECTION_ESTABLISHMENT_FAILED));
         assertThat(open.getProperties(), hasEntry(CONNECTION_ESTABLISHMENT_FAILED, true));
     }
 
     static void assumeConnectionEstablishmentFailed(final Open open)
     {
         assumeThat(open.getProperties(), is(notNullValue()));
-        assumeThat(open.getProperties(), Matchers.hasKey(CONNECTION_ESTABLISHMENT_FAILED));
+        assumeThat(open.getProperties(), hasKey(CONNECTION_ESTABLISHMENT_FAILED));
         assertThat(open.getProperties(), hasEntry(CONNECTION_ESTABLISHMENT_FAILED, true));
     }
 
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/DeleteOnCloseTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/DeleteOnCloseTest.java
index bec5067..63f914f 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/DeleteOnCloseTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/DeleteOnCloseTest.java
@@ -20,6 +20,7 @@
 
 package org.apache.qpid.tests.protocol.v1_0.messaging;
 
+import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.notNullValue;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.is;
@@ -44,12 +45,13 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Detach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
-import org.apache.qpid.tests.utils.BrokerAdmin;
+import org.apache.qpid.tests.protocol.Response;
+import org.apache.qpid.tests.protocol.SpecificationTest;
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
 import org.apache.qpid.tests.protocol.v1_0.Interaction;
-import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
-import org.apache.qpid.tests.protocol.SpecificationTest;
 import org.apache.qpid.tests.protocol.v1_0.Utils;
+import org.apache.qpid.tests.utils.BrokerAdmin;
+import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
 
 public class DeleteOnCloseTest extends BrokerAdminUsingTestBase
 {
@@ -79,6 +81,7 @@ public class DeleteOnCloseTest extends BrokerAdminUsingTestBase
                                                      .attachRole(Role.RECEIVER)
                                                      .attachSource(source)
                                                      .attach().consumeResponse()
+                                                     .assertLatestResponse(this::assumeAttach)
                                                      .getLatestResponse(Attach.class);
             assertThat(attachResponse.getSource(), is(notNullValue()));
             final String newTempQueueAddress = ((Source) attachResponse.getSource()).getAddress();
@@ -114,6 +117,7 @@ public class DeleteOnCloseTest extends BrokerAdminUsingTestBase
                                                      .attachRole(Role.SENDER)
                                                      .attachTarget(target)
                                                      .attach().consumeResponse()
+                                                     .assertLatestResponse(this::assumeAttach)
                                                      .getLatestResponse(Attach.class);
             assertThat(attachResponse.getTarget(), is(notNullValue()));
             final String newTempQueueAddress = ((Target) attachResponse.getTarget()).getAddress();
@@ -152,6 +156,7 @@ public class DeleteOnCloseTest extends BrokerAdminUsingTestBase
                                                      .attachRole(Role.RECEIVER)
                                                      .attachSource(source)
                                                      .attach().consumeResponse()
+                                                     .assertLatestResponse(this::assumeAttach)
                                                      .getLatestResponse(Attach.class);
             assertThat(attachResponse.getSource(), is(notNullValue()));
             final String newTempQueueAddress = ((Source) attachResponse.getSource()).getAddress();
@@ -196,6 +201,7 @@ public class DeleteOnCloseTest extends BrokerAdminUsingTestBase
                                                      .attachRole(Role.RECEIVER)
                                                      .attachSource(source)
                                                      .attach().consumeResponse()
+                                                     .assertLatestResponse(this::assumeAttach)
                                                      .getLatestResponse(Attach.class);
             assertThat(attachResponse.getSource(), is(notNullValue()));
             newTempQueueAddress = ((Source) attachResponse.getSource()).getAddress();
@@ -209,4 +215,10 @@ public class DeleteOnCloseTest extends BrokerAdminUsingTestBase
 
         assertThat(Utils.doesNodeExist(_brokerAddress, newTempQueueAddress), is(true));
     }
+
+    private void assumeAttach(final Response<?> response)
+    {
+        assertThat(response, notNullValue());
+        assumeThat(response.getBody(), instanceOf(Attach.class));
+    }
 }
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MessageFormat.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MessageFormat.java
index 5539291..dfca049 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MessageFormat.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MessageFormat.java
@@ -67,26 +67,26 @@ public class MessageFormat extends BrokerAdminUsingTestBase
             QpidByteBuffer[] payloads = Utils.splitPayload(getTestName(), 2);
 
             transport.newInteraction()
-                                                        .negotiateProtocol().consumeResponse()
-                                                        .open().consumeResponse(Open.class)
-                                                        .begin().consumeResponse(Begin.class)
-                                                        .attachRole(Role.SENDER)
-                                                        .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
-                                                        .attach().consumeResponse(Attach.class)
-                                                        .consumeResponse(Flow.class)
-                                                        .transferMore(true)
-                                                        .transferMessageFormat(UnsignedInteger.ZERO)
-                                                        .transferPayload(payloads[0])
-                                                        .transferSettled(true)
-                                                        .transfer()
-                                                        .consumeResponse(null, Flow.class, Disposition.class)
-                                                        .transferDeliveryTag(null)
-                                                        .transferDeliveryId(null)
-                                                        .transferMore(false)
-                                                        .transferMessageFormat(UnsignedInteger.ONE)
-                                                        .transferPayload(payloads[1])
-                                                        .transfer()
-                                                        .sync();
+                     .negotiateProtocol().consumeResponse()
+                     .open().consumeResponse(Open.class)
+                     .begin().consumeResponse(Begin.class)
+                     .attachRole(Role.SENDER)
+                     .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
+                     .attach().consumeResponse(Attach.class)
+                     .consumeResponse(Flow.class)
+                     .transferMore(true)
+                     .transferMessageFormat(UnsignedInteger.ZERO)
+                     .transferPayload(payloads[0])
+                     .transferSettled(true)
+                     .transfer()
+                     .consumeResponse(null, Flow.class, Disposition.class)
+                     .transferDeliveryTag(null)
+                     .transferDeliveryId(null)
+                     .transferMore(false)
+                     .transferMessageFormat(UnsignedInteger.ONE)
+                     .transferPayload(payloads[1])
+                     .transfer()
+                     .sync();
 
             for (final QpidByteBuffer payload : payloads)
             {
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MultiTransferTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MultiTransferTest.java
index da85c83..96920c6 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MultiTransferTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MultiTransferTest.java
@@ -88,7 +88,6 @@ public class MultiTransferTest extends BrokerAdminUsingTestBase
                                                  .begin().consumeResponse(Begin.class)
                                                  .attachRole(Role.SENDER)
                                                  .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
-                                                 .attachSourceOutcomes(Accepted.ACCEPTED_SYMBOL)
                                                  .attach().consumeResponse(Attach.class)
                                                  .consumeResponse(Flow.class)
                                                  .transferPayload(payloads[0])
@@ -135,7 +134,6 @@ public class MultiTransferTest extends BrokerAdminUsingTestBase
                        .begin().consumeResponse(Begin.class)
                        .attachRole(Role.SENDER)
                        .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
-                       .attachSourceOutcomes(Accepted.ACCEPTED_SYMBOL)
                        .attach().consumeResponse(Attach.class)
                        .consumeResponse(Flow.class)
                        .transferDeliveryId(deliveryId)
@@ -197,7 +195,6 @@ public class MultiTransferTest extends BrokerAdminUsingTestBase
                        .begin().consumeResponse(Begin.class)
                        .attachRole(Role.SENDER)
                        .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
-                       .attachSourceOutcomes(Accepted.ACCEPTED_SYMBOL)
                        .attach().consumeResponse(Attach.class)
                        .consumeResponse(Flow.class)
                        .transferPayload(payloads[0])
@@ -252,7 +249,6 @@ public class MultiTransferTest extends BrokerAdminUsingTestBase
                        .attachHandle(linkHandle1)
                        .attachRole(Role.SENDER)
                        .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
-                       .attachSourceOutcomes(Accepted.ACCEPTED_SYMBOL)
                        .attach().consumeResponse(Attach.class)
                        .consumeResponse(Flow.class)
 
@@ -260,7 +256,6 @@ public class MultiTransferTest extends BrokerAdminUsingTestBase
                        .attachHandle(linkHandle2)
                        .attachRole(Role.SENDER)
                        .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
-                       .attachSourceOutcomes(Accepted.ACCEPTED_SYMBOL)
                        .attach().consumeResponse(Attach.class)
                        .consumeResponse(Flow.class)
 
@@ -356,7 +351,6 @@ public class MultiTransferTest extends BrokerAdminUsingTestBase
 
                        .attachRole(Role.SENDER)
                        .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
-                       .attachSourceOutcomes(Accepted.ACCEPTED_SYMBOL)
                        .attach().consumeResponse(Attach.class)
                        .consumeResponse(Flow.class)
 
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/OutcomeTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/OutcomeTest.java
index 2ea7dda..6fd1b58 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/OutcomeTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/OutcomeTest.java
@@ -21,8 +21,14 @@
 package org.apache.qpid.tests.protocol.v1_0.messaging;
 
 import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.emptyArray;
+import static org.hamcrest.Matchers.hasItemInArray;
+import static org.hamcrest.Matchers.nullValue;
+import static org.hamcrest.Matchers.oneOf;
+import static org.junit.Assume.assumeThat;
 
 import java.net.InetSocketAddress;
 
@@ -30,10 +36,14 @@ import org.junit.Before;
 import org.junit.Test;
 
 import org.apache.qpid.server.protocol.v1_0.type.UnsignedInteger;
+import org.apache.qpid.server.protocol.v1_0.type.messaging.Accepted;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.Modified;
+import org.apache.qpid.server.protocol.v1_0.type.messaging.Source;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Attach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Begin;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
+import org.apache.qpid.server.protocol.v1_0.type.transport.Disposition;
+import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
 import org.apache.qpid.tests.protocol.v1_0.Interaction;
@@ -72,6 +82,7 @@ public class OutcomeTest extends BrokerAdminUsingTestBase
                                                      .attachRole(Role.RECEIVER)
                                                      .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
                                                      .attach().consumeResponse(Attach.class)
+                                                     .assertLatestResponse(Attach.class, this::assumeModifiedSupportedBySource)
                                                      .flowIncomingWindow(UnsignedInteger.ONE)
                                                      .flowLinkCredit(UnsignedInteger.ONE)
                                                      .flowHandleFromLinkHandle()
@@ -95,7 +106,7 @@ public class OutcomeTest extends BrokerAdminUsingTestBase
                        .flowLinkCredit(UnsignedInteger.valueOf(2))
                        .flowNextIncomingIdFromPeerLatestSessionBeginAndDeliveryCount()
                        .flow()
-                       .receiveDelivery()
+                       .receiveDelivery(Flow.class)
                        .decodeLatestDelivery();
 
             Object secondDeliveryPayload = interaction.getDecodedLatestDelivery();
@@ -107,4 +118,51 @@ public class OutcomeTest extends BrokerAdminUsingTestBase
         assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(content1)));
         assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(content2)));
     }
+
+    @Test
+    @SpecificationTest(section = "3.5.3 Source",
+            description = "outcomes descriptors for the outcomes that can be chosen on this link\n"
+                          + "The values in this field are the symbolic descriptors of the outcomes that can be chosen"
+                          + " on this link. This field MAY be empty, indicating that the default-outcome will be"
+                          + " assumed for all message transfers (if the default-outcome is not set, and no outcomes"
+                          + " are provided, then the accepted outcome MUST be supported by the source)."
+                          + " When present, the values MUST be a symbolic descriptor of a valid outcome, e.g.,"
+                          + " “amqp:accepted:list”.")
+    public void transferMessageWithAttachSourceHavingExplicitlySetOutcomesToAccepted() throws Exception
+    {
+        try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
+        {
+            Interaction interaction = transport.newInteraction();
+            Disposition disposition = interaction.negotiateProtocol().consumeResponse()
+                                                 .open().consumeResponse(Open.class)
+                                                 .begin().consumeResponse(Begin.class)
+                                                 .attachRole(Role.SENDER)
+                                                 .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
+                                                 .attachSourceOutcomes(Accepted.ACCEPTED_SYMBOL)
+                                                 .attach().consumeResponse(Attach.class)
+                                                 .consumeResponse(Flow.class)
+                                                 .transferPayloadData(getTestName())
+                                                 .transfer()
+                                                 .consume(Disposition.class, Flow.class);
+
+            interaction.detachEndCloseUnconditionally();
+
+            assertThat(disposition.getFirst(), is(equalTo(UnsignedInteger.ZERO)));
+            assertThat(disposition.getLast(), oneOf(null, UnsignedInteger.ZERO));
+            assertThat(disposition.getSettled(), is(equalTo(true)));
+        }
+        assertThat(Utils.receiveMessage(_brokerAddress, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(getTestName())));
+    }
+
+
+    private void assumeModifiedSupportedBySource(final Attach attach)
+    {
+        assumeThat(attach.getSource(), instanceOf(Source.class));
+        final Source source = (Source) attach.getSource();
+
+        if (!(source.getDefaultOutcome() instanceof Modified))
+        {
+            assumeThat(source.getOutcomes(), hasItemInArray(Modified.MODIFIED_SYMBOL));
+        }
+    }
 }
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/TransferTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/TransferTest.java
index 792bf30..9d81ee7 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/TransferTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/TransferTest.java
@@ -113,10 +113,12 @@ public class TransferTest extends BrokerAdminUsingTestBase
                                            .open().consumeResponse(Open.class)
                                            .begin().consumeResponse(Begin.class)
                                            .attachRole(Role.SENDER)
+                                           .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
                                            .attach().consumeResponse(Attach.class)
                                            .consumeResponse(Flow.class)
                                            .assertLatestResponse(Flow.class, this::assumeSufficientCredits)
                                            .transferHandle(null)
+                                           .transferPayloadData(getTestName())
                                            .transfer()
                                            .consumeResponse()
                                            .getLatestResponse();
@@ -125,9 +127,10 @@ public class TransferTest extends BrokerAdminUsingTestBase
             assertThat(response.getBody(), is(notNullValue()));
             assertThat(response.getBody(), is(instanceOf(ErrorCarryingFrameBody.class)));
 
-            final Error error = ((ErrorCarryingFrameBody)response.getBody()).getError();
+            final Error error = ((ErrorCarryingFrameBody) response.getBody()).getError();
             assertThat(error, is(notNullValue()));
-            assertThat(error.getCondition(), anyOf(equalTo(AmqpError.DECODE_ERROR), equalTo(AmqpError.INVALID_FIELD)));
+            assertThat(error.getCondition(),
+                       oneOf(AmqpError.DECODE_ERROR, AmqpError.INVALID_FIELD, AmqpError.ILLEGAL_STATE));
         }
     }
 
@@ -143,10 +146,12 @@ public class TransferTest extends BrokerAdminUsingTestBase
                                            .open().consumeResponse(Open.class)
                                            .begin().consumeResponse(Begin.class)
                                            .attachRole(Role.SENDER)
+                                           .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
                                            .attach().consumeResponse(Attach.class)
                                            .consumeResponse(Flow.class)
                                            .assertLatestResponse(Flow.class, this::assumeSufficientCredits)
                                            .transferDeliveryId(null)
+                                           .transferPayloadData(getTestName())
                                            .transfer()
                                            .consumeResponse()
                                            .getLatestResponse();
@@ -347,11 +352,12 @@ public class TransferTest extends BrokerAdminUsingTestBase
 
             assertThat(response, is(notNullValue()));
             assertThat(response.getBody(), is(notNullValue()));
-            assertThat(response.getBody(), is(instanceOf(Detach.class)));
+            assertThat(response.getBody(), is(instanceOf(ErrorCarryingFrameBody.class)));
 
-            final Detach detach = (Detach) response.getBody();
-            Error error = detach.getError();
+            final ErrorCarryingFrameBody performative = (ErrorCarryingFrameBody) response.getBody();
+            final Error error = performative.getError();
             assertThat(error, is(notNullValue()));
+            assumeThat(error.getCondition(), is(not(AmqpError.NOT_IMPLEMENTED)));
             assertThat(error.getCondition(), is(equalTo(AmqpError.INVALID_FIELD)));
         }
     }
@@ -562,8 +568,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
                        .dispositionRole(Role.RECEIVER)
                        .disposition();
 
-            // verify that no unexpected performative is received by closing
-            interaction.doCloseConnection();
+            interaction.detachEndCloseUnconditionally();
         }
     }
 
@@ -581,6 +586,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
                                                      .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
                                                      .attachRcvSettleMode(ReceiverSettleMode.SECOND)
                                                      .attach().consumeResponse()
+                                                     .assertLatestResponse(this::assumeAttach)
                                                      .assertLatestResponse(Attach.class, this::assumeReceiverSettlesSecond)
                                                      .flowIncomingWindow(UnsignedInteger.ONE)
                                                      .flowNextIncomingIdFromPeerLatestSessionBeginAndDeliveryCount()
@@ -628,6 +634,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
                                                      .attachSourceOutcomes(Accepted.ACCEPTED_SYMBOL, Rejected.REJECTED_SYMBOL)
                                                      .attachRcvSettleMode(ReceiverSettleMode.SECOND)
                                                      .attach().consumeResponse()
+                                                     .assertLatestResponse(this::assumeAttach)
                                                      .assertLatestResponse(Attach.class, this::assumeReceiverSettlesSecond)
                                                      .flowIncomingWindow(UnsignedInteger.ONE)
                                                      .flowNextIncomingIdFromPeerLatestSessionBeginAndDeliveryCount()
@@ -732,6 +739,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
                        .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
                        .attachRcvSettleMode(ReceiverSettleMode.SECOND)
                        .attach().consumeResponse()
+                       .assertLatestResponse(this::assumeAttach)
                        .assertLatestResponse(Attach.class, this::assumeReceiverSettlesSecond)
                        .flowIncomingWindow(UnsignedInteger.ONE)
                        .flowNextIncomingIdFromPeerLatestSessionBeginAndDeliveryCount()
@@ -818,8 +826,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
 
             assertThat(isSettled.get(), is(true));
 
-            // verify no unexpected performative received by closing the connection
-            interaction.doCloseConnection();
+            interaction.detachEndCloseUnconditionally();
         }
 
         Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, "test");
@@ -1137,7 +1144,7 @@ public class TransferTest extends BrokerAdminUsingTestBase
                        .dispositionLast(interaction.getLatestDeliveryId())
                        .dispositionState(new Accepted())
                        .disposition();
-            interaction.doCloseConnection();
+            interaction.detachEndCloseUnconditionally();
         }
 
         final String messageText = getTestName() + "_" + 4;
@@ -1266,4 +1273,11 @@ public class TransferTest extends BrokerAdminUsingTestBase
         assertThat(response, is(notNullValue()));
         assumeThat(response.getBody(), anyOf(instanceOf(Attach.class), instanceOf(Flow.class)));
     }
+
+    private void assumeAttach(final Response<?> response)
+    {
+        assertThat(response, notNullValue());
+        assumeThat(response.getBody(), is(instanceOf(Attach.class)));
+    }
+
 }
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/ProtocolHeaderTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/ProtocolHeaderTest.java
index 8467a51..bf6682f 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/ProtocolHeaderTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/ProtocolHeaderTest.java
@@ -22,6 +22,7 @@ package org.apache.qpid.tests.protocol.v1_0.transport;
 
 import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assume.assumeThat;
 
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/connection/OpenTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/connection/OpenTest.java
index f0f46f4..f20b8c0 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/connection/OpenTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/connection/OpenTest.java
@@ -28,8 +28,10 @@ import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.greaterThan;
 import static org.hamcrest.Matchers.greaterThanOrEqualTo;
 import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.lessThan;
 import static org.hamcrest.Matchers.lessThanOrEqualTo;
 import static org.hamcrest.Matchers.notNullValue;
+import static org.junit.Assume.assumeThat;
 
 import java.net.InetSocketAddress;
 
@@ -146,6 +148,7 @@ public class OpenTest extends BrokerAdminUsingTestBase
             final int timeout = peerIdleTimeOut == null || peerIdleTimeOut.intValue() == 0
                     ? idleTimeOut
                     : peerIdleTimeOut.intValue();
+            assumeThat(timeout, lessThan(30000));
             Thread.sleep(timeout);
             interaction.consumeResponse(EmptyResponse.class);
         }
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/AttachTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/AttachTest.java
index a170e7e..a6caac1 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/AttachTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/AttachTest.java
@@ -39,16 +39,15 @@ import org.apache.qpid.server.protocol.v1_0.type.UnsignedInteger;
 import org.apache.qpid.server.protocol.v1_0.type.transport.AmqpError;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Attach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Begin;
-import org.apache.qpid.server.protocol.v1_0.type.transport.Close;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Detach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.End;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Error;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
 import org.apache.qpid.tests.protocol.Response;
+import org.apache.qpid.tests.protocol.SpecificationTest;
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
 import org.apache.qpid.tests.protocol.v1_0.Interaction;
-import org.apache.qpid.tests.protocol.SpecificationTest;
 import org.apache.qpid.tests.utils.BrokerAdmin;
 import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
 import org.apache.qpid.tests.utils.BrokerSpecific;
@@ -89,6 +88,7 @@ public class AttachTest extends BrokerAdminUsingTestBase
                           + "assigning it to an unused handle, and sending an attach frame.")
     public void successfulAttachAsSender() throws Exception
     {
+        getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME);
         final InetSocketAddress addr = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP);
         try (FrameTransport transport = new FrameTransport(addr).connect())
         {
@@ -98,6 +98,7 @@ public class AttachTest extends BrokerAdminUsingTestBase
                                                    .begin().consumeResponse(Begin.class)
                                                    .attachRole(Role.SENDER)
                                                    .attachInitialDeliveryCount(UnsignedInteger.ZERO)
+                                                   .attachTargetAddress(BrokerAdmin.TEST_QUEUE_NAME)
                                                    .attach().consumeResponse()
                                                    .getLatestResponse(Attach.class);
             assertThat(responseAttach.getName(), is(notNullValue()));
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/FlowTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/FlowTest.java
index 1f9968b..747fc02 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/FlowTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/FlowTest.java
@@ -39,6 +39,7 @@ import org.apache.qpid.server.protocol.v1_0.type.messaging.Accepted;
 import org.apache.qpid.server.protocol.v1_0.type.transport.AmqpError;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Attach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Begin;
+import org.apache.qpid.server.protocol.v1_0.type.transport.Detach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.End;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Error;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
@@ -213,7 +214,6 @@ public class FlowTest extends BrokerAdminUsingTestBase
                                          .consumeResponse().getLatestResponse(Flow.class);
 
             assertThat(responseFlow.getHandle(), is(notNullValue()));
-            assertThat(responseFlow.getLinkCredit(), is(equalTo(UnsignedInteger.ZERO)));
             assertThat(responseFlow.getDrain(), is(equalTo(Boolean.TRUE)));
         }
     }
@@ -294,7 +294,6 @@ public class FlowTest extends BrokerAdminUsingTestBase
                                       .consumeResponse().getLatestResponse(Flow.class);
 
             assertThat(responseFlow.getHandle(), is(equalTo(remoteHandle)));
-            assertThat(responseFlow.getLinkCredit(), is(equalTo(UnsignedInteger.ZERO)));
             assertThat(responseFlow.getDrain(), is(equalTo(Boolean.TRUE)));
         }
     }
@@ -340,7 +339,7 @@ public class FlowTest extends BrokerAdminUsingTestBase
 
             Utils.putMessageOnQueue(getBrokerAdmin(), BrokerAdmin.TEST_QUEUE_NAME, getTestName());
 
-            final Object receivedMessageContent = interaction.receiveDelivery()
+            final Object receivedMessageContent = interaction.receiveDelivery(Flow.class)
                                                              .decodeLatestDelivery()
                                                              .getDecodedLatestDelivery();
 
@@ -358,7 +357,6 @@ public class FlowTest extends BrokerAdminUsingTestBase
                                                  .consumeResponse().getLatestResponse(Flow.class);
 
             assertThat(responseFlow.getHandle(), is(equalTo(remoteHandle)));
-            assertThat(responseFlow.getLinkCredit(), is(equalTo(UnsignedInteger.ZERO)));
 
             interaction.dispositionSettled(true)
                        .dispositionRole(Role.RECEIVER)
@@ -396,10 +394,6 @@ public class FlowTest extends BrokerAdminUsingTestBase
                                                .attachSourceAddress(BrokerAdmin.TEST_QUEUE_NAME)
                                                .attach().consumeResponse(Attach.class);
 
-            Attach remoteAttach = interaction.getLatestResponse(Attach.class);
-            UnsignedInteger remoteHandle = remoteAttach.getHandle();
-            assertThat(remoteHandle, is(notNullValue()));
-
             UnsignedInteger delta = UnsignedInteger.ONE;
             UnsignedInteger incomingWindow = UnsignedInteger.valueOf(3);
             Object receivedMessageContent1 = interaction.flowIncomingWindow(incomingWindow)
@@ -432,25 +426,15 @@ public class FlowTest extends BrokerAdminUsingTestBase
             assertThat(receivedMessageContent2, is(equalTo(contents[1])));
             UnsignedInteger secondDeliveryId = interaction.getLatestDeliveryId();
 
-            // send session flow with echo=true to verify that no message is delivered without issuing a credit
-            interaction.flowNextIncomingIdFromPeerLatestSessionBeginAndDeliveryCount()
-                       .flowIncomingWindow(incomingWindow)
-                       .flowLinkCredit(null)
-                       .flowHandle(null)
-                       .flowDeliveryCount(null)
-                       .flowEcho(Boolean.TRUE)
-                       .flowOutgoingWindow(UnsignedInteger.ZERO)
-                       .flowNextOutgoingId(UnsignedInteger.ZERO)
-                       .flow()
-                       .consumeResponse(null, Flow.class);
-
             interaction.dispositionSettled(true)
                        .dispositionRole(Role.RECEIVER)
                        .dispositionFirst(firstDeliveryId)
                        .dispositionLast(secondDeliveryId)
                        .dispositionState(new Accepted())
-                       .disposition()
-                       .sync();
+                       .disposition();
+
+            // detach link and consume detach to verify that no transfer was delivered
+            interaction.detachClose(true).detach().consume(Detach.class, Flow.class);
         }
         assertThat(Utils.receiveMessage(addr, BrokerAdmin.TEST_QUEUE_NAME), is(equalTo(contents[2])));
     }
@@ -585,7 +569,6 @@ public class FlowTest extends BrokerAdminUsingTestBase
                                            .consumeResponse(Flow.class).getLatestResponse(Flow.class);
 
             assertThat(responseFlow.getHandle(), is(equalTo(remoteHandle)));
-            assertThat(responseFlow.getLinkCredit(), is(equalTo(UnsignedInteger.ZERO)));
 
             interaction.dispositionSettled(true)
                        .dispositionRole(Role.RECEIVER)
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/ResumeDeliveriesTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/ResumeDeliveriesTest.java
index b58185e..e8b6160 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/ResumeDeliveriesTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/ResumeDeliveriesTest.java
@@ -486,7 +486,7 @@ public class ResumeDeliveriesTest extends BrokerAdminUsingTestBase
                        .dispositionRole(Role.RECEIVER)
                        .disposition();
 
-            Detach detach = interaction.detach().consumeResponse().getLatestResponse(Detach.class);
+            Detach detach = interaction.detach().consume(Detach.class, Flow.class);
             assertThat(detach.getClosed(), anyOf(nullValue(), equalTo(false)));
 
             interaction.attachUnsettled(new HashMap<>())
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/session/BeginTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/session/BeginTest.java
index a1ea481..e05de00 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/session/BeginTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/session/BeginTest.java
@@ -39,6 +39,7 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.AmqpError;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Begin;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Close;
 import org.apache.qpid.server.protocol.v1_0.type.transport.ConnectionError;
+import org.apache.qpid.server.protocol.v1_0.type.transport.End;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Error;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.tests.protocol.Response;
@@ -93,12 +94,13 @@ public class BeginTest extends BrokerAdminUsingTestBase
                                            .sessionChannel(channel)
                                            .begin().consumeResponse()
                                            .getLatestResponse(Begin.class);
+
             assertThat(responseBegin.getRemoteChannel(), equalTo(channel));
             assertThat(responseBegin.getIncomingWindow(), is(instanceOf(UnsignedInteger.class)));
             assertThat(responseBegin.getOutgoingWindow(), is(instanceOf(UnsignedInteger.class)));
             assertThat(responseBegin.getNextOutgoingId(), is(instanceOf(UnsignedInteger.class)));
 
-            interaction.doCloseConnection();
+            interaction.end().consumeResponse(End.class).close().consumeResponse(Close.class);
         }
     }
 


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