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:09 UTC

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

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