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 c8bbebfd146eb1e71c9e02d309e39897e8659bd8
Author: Alex Rudyy <[email protected]>
AuthorDate: Mon Aug 19 14:19:03 2019 +0100

    QPID-8350: [Tests][AMQP 1.0] Add more assertions and validation into sole 
connection tests
---
 .../extensions/soleconn/CloseExistingPolicy.java   |  89 ++++++--------
 .../v1_0/extensions/soleconn/MixedPolicy.java      |  13 ++-
 .../soleconn/RefuseConnectionPolicy.java           | 109 ++++++-----------
 .../extensions/soleconn/SoleConnectionAsserts.java | 129 +++++++++++++++++++++
 4 files changed, 213 insertions(+), 127 deletions(-)

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 8e4f676..0427c96 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
@@ -24,30 +24,28 @@ 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.SoleConnectionConnectionProperties.SOLE_CONNECTION_ENFORCEMENT_POLICY;
 import static 
org.apache.qpid.server.protocol.v1_0.type.extensions.soleconn.SoleConnectionConnectionProperties.SOLE_CONNECTION_FOR_CONTAINER;
 import static 
org.apache.qpid.server.protocol.v1_0.type.extensions.soleconn.SoleConnectionEnforcementPolicy.CLOSE_EXISTING;
-import static org.hamcrest.CoreMatchers.hasItem;
-import static org.hamcrest.CoreMatchers.notNullValue;
+import static 
org.apache.qpid.tests.protocol.v1_0.extensions.soleconn.SoleConnectionAsserts.assertEnforcementPolicyCloseExisting;
+import static 
org.apache.qpid.tests.protocol.v1_0.extensions.soleconn.SoleConnectionAsserts.assertResourceLocked;
+import static 
org.apache.qpid.tests.protocol.v1_0.extensions.soleconn.SoleConnectionAsserts.assertSoleConnectionCapability;
+import static 
org.apache.qpid.tests.protocol.v1_0.extensions.soleconn.SoleConnectionAsserts.assumeDetectionPolicyStrong;
+import static 
org.apache.qpid.tests.protocol.v1_0.extensions.soleconn.SoleConnectionAsserts.assumeEnforcementPolicyCloseExisting;
+import static 
org.apache.qpid.tests.protocol.v1_0.extensions.soleconn.SoleConnectionAsserts.assumeSoleConnectionCapability;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.in;
-import static org.hamcrest.Matchers.is;
-import static org.junit.Assume.assumeThat;
 
 import java.net.InetSocketAddress;
-import java.util.Arrays;
 import java.util.Collections;
 
 import org.junit.Before;
 import org.junit.Test;
 
-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.extensions.soleconn.SoleConnectionDetectionPolicy;
-import org.apache.qpid.server.protocol.v1_0.type.transport.AmqpError;
 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.utils.BrokerAdmin;
 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
@@ -75,7 +73,9 @@ public class CloseExistingPolicy extends 
BrokerAdminUsingTestBase
                                          .open().consumeResponse()
                                          .getLatestResponse(Open.class);
 
-            assertThat(Arrays.asList(responseOpen.getOfferedCapabilities()), 
hasItem(SOLE_CONNECTION_FOR_CONTAINER));
+            assumeSoleConnectionCapability(responseOpen);
+            assumeEnforcementPolicyCloseExisting(responseOpen);
+
             if 
(responseOpen.getProperties().containsKey(SOLE_CONNECTION_DETECTION_POLICY))
             {
                 
assertThat(responseOpen.getProperties().get(SOLE_CONNECTION_DETECTION_POLICY),
@@ -98,6 +98,10 @@ public class CloseExistingPolicy extends 
BrokerAdminUsingTestBase
                                                                  
CLOSE_EXISTING))
                         .open().consumeResponse(Open.class);
 
+            final Open responseOpen = 
interaction1.getLatestResponse(Open.class);
+            assumeSoleConnectionCapability(responseOpen);
+            assumeEnforcementPolicyCloseExisting(responseOpen);
+
             try (FrameTransport transport2 = new 
FrameTransport(_brokerAddress).connect())
             {
                 final Interaction interaction2 = transport2.newInteraction();
@@ -109,26 +113,18 @@ public class CloseExistingPolicy extends 
BrokerAdminUsingTestBase
                             .open()
                             .sync();
 
-                final Close close1 = 
interaction1.consumeResponse().getLatestResponse(Close.class);
-                assertThat(close1.getError(), is(notNullValue()));
-                assertThat(close1.getError().getCondition(), 
is(equalTo(AmqpError.RESOURCE_LOCKED)));
-                assertThat(close1.getError().getInfo(), 
is(equalTo(Collections.singletonMap(Symbol.valueOf("sole-connection-enforcement"),
 true))));
+                
assertResourceLocked(interaction1.consumeResponse().getLatestResponse(Close.class));
 
                 final Open responseOpen2 = 
interaction2.consumeResponse().getLatestResponse(Open.class);
-                
assertThat(Arrays.asList(responseOpen2.getOfferedCapabilities()), 
hasItem(SOLE_CONNECTION_FOR_CONTAINER));
-                if 
(responseOpen2.getProperties().containsKey(SOLE_CONNECTION_DETECTION_POLICY))
-                {
-                    
assertThat(responseOpen2.getProperties().get(SOLE_CONNECTION_DETECTION_POLICY),
-                               in(new 
UnsignedInteger[]{SoleConnectionDetectionPolicy.STRONG.getValue(),
-                                       
SoleConnectionDetectionPolicy.WEAK.getValue()}));
-                }
+                assertSoleConnectionCapability(responseOpen2);
+                assertEnforcementPolicyCloseExisting(responseOpen2);
             }
         }
     }
 
 
     @Test
-    public void weakDetection() throws Exception
+    public void 
strongDetectionWhenConnectionWithoutSoleConnectionCapabilityOpened() throws 
Exception
     {
         try (FrameTransport transport1 = new 
FrameTransport(_brokerAddress).connect())
         {
@@ -138,6 +134,10 @@ public class CloseExistingPolicy extends 
BrokerAdminUsingTestBase
                         .openContainerId("testContainerId")
                         .open().consumeResponse(Open.class);
 
+            final Open responseOpen = 
interaction1.getLatestResponse(Open.class);
+            assumeSoleConnectionCapability(responseOpen);
+            assumeDetectionPolicyStrong(responseOpen);
+
             try (FrameTransport transport2 = new 
FrameTransport(_brokerAddress).connect())
             {
                 final Interaction interaction2 = transport2.newInteraction();
@@ -147,21 +147,13 @@ public class CloseExistingPolicy extends 
BrokerAdminUsingTestBase
                             
.openProperties(Collections.singletonMap(SOLE_CONNECTION_ENFORCEMENT_POLICY,
                                                                      
CLOSE_EXISTING))
                             .open()
-                            .sync();
-
-                final Close close1 = 
interaction1.consumeResponse().getLatestResponse(Close.class);
-                assertThat(close1.getError(), is(notNullValue()));
-                assertThat(close1.getError().getCondition(), 
is(equalTo(AmqpError.RESOURCE_LOCKED)));
-                assertThat(close1.getError().getInfo(), 
is(equalTo(Collections.singletonMap(Symbol.valueOf("sole-connection-enforcement"),
 true))));
+                            .consumeResponse(Open.class);
 
-                final Open responseOpen2 = 
interaction2.consumeResponse().getLatestResponse(Open.class);
-                
assertThat(Arrays.asList(responseOpen2.getOfferedCapabilities()), 
hasItem(SOLE_CONNECTION_FOR_CONTAINER));
-                if 
(responseOpen2.getProperties().containsKey(SOLE_CONNECTION_DETECTION_POLICY))
-                {
-                    
assertThat(responseOpen2.getProperties().get(SOLE_CONNECTION_DETECTION_POLICY),
-                               in(new 
UnsignedInteger[]{SoleConnectionDetectionPolicy.STRONG.getValue(),
-                                       
SoleConnectionDetectionPolicy.WEAK.getValue()}));
-                }
+                final Open responseOpen2 = 
interaction2.getLatestResponse(Open.class);
+                assumeSoleConnectionCapability(responseOpen2);
+                assumeEnforcementPolicyCloseExisting(responseOpen2);
+                assumeDetectionPolicyStrong(responseOpen2);
+                
assertResourceLocked(interaction1.consumeResponse().getLatestResponse(Close.class));
             }
         }
     }
@@ -180,12 +172,10 @@ public class CloseExistingPolicy extends 
BrokerAdminUsingTestBase
                                                     CLOSE_EXISTING))
                                             .open().consumeResponse()
                                             .getLatestResponse(Open.class);
-            assertThat(Arrays.asList(responseOpen.getOfferedCapabilities()), 
hasItem(SOLE_CONNECTION_FOR_CONTAINER));
-            if 
(responseOpen.getProperties().containsKey(SOLE_CONNECTION_DETECTION_POLICY))
-            {
-                
assumeThat(responseOpen.getProperties().get(SOLE_CONNECTION_DETECTION_POLICY),
-                           
is(equalTo(SoleConnectionDetectionPolicy.STRONG.getValue())));
-            }
+
+            assumeSoleConnectionCapability(responseOpen);
+            assumeEnforcementPolicyCloseExisting(responseOpen);
+            assumeDetectionPolicyStrong(responseOpen);
 
             try (FrameTransport transport2 = new 
FrameTransport(_brokerAddress).connect())
             {
@@ -195,19 +185,8 @@ public class CloseExistingPolicy extends 
BrokerAdminUsingTestBase
                             .openContainerId("testContainerId")
                             .open().sync();
 
-                final Close close1 = 
interaction1.consumeResponse().getLatestResponse(Close.class);
-                assertThat(close1.getError(), is(notNullValue()));
-                assertThat(close1.getError().getCondition(), 
is(equalTo(AmqpError.RESOURCE_LOCKED)));
-                assertThat(close1.getError().getInfo(), 
is(equalTo(Collections.singletonMap(Symbol.valueOf("sole-connection-enforcement"),
 true))));
-
-                final Open responseOpen2 = 
interaction2.consumeResponse().getLatestResponse(Open.class);
-                
assertThat(Arrays.asList(responseOpen2.getOfferedCapabilities()), 
hasItem(SOLE_CONNECTION_FOR_CONTAINER));
-                if 
(responseOpen2.getProperties().containsKey(SOLE_CONNECTION_DETECTION_POLICY))
-                {
-                    
assertThat(responseOpen2.getProperties().get(SOLE_CONNECTION_DETECTION_POLICY),
-                               in(new 
UnsignedInteger[]{SoleConnectionDetectionPolicy.STRONG.getValue(),
-                                       
SoleConnectionDetectionPolicy.WEAK.getValue()}));
-                }
+                
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 0c9ce9f..5e32c86 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
@@ -24,6 +24,9 @@ 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.SoleConnectionConnectionProperties.SOLE_CONNECTION_FOR_CONTAINER;
 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.apache.qpid.tests.protocol.v1_0.extensions.soleconn.SoleConnectionAsserts.assumeEnforcementPolicyCloseExisting;
+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;
@@ -33,9 +36,9 @@ 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.utils.BrokerAdmin;
 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
@@ -61,6 +64,10 @@ public class MixedPolicy extends BrokerAdminUsingTestBase
                                                                  
CLOSE_EXISTING))
                         .open().consumeResponse(Open.class);
 
+            Open responseOpen = interaction1.getLatestResponse(Open.class);
+            assumeSoleConnectionCapability(responseOpen);
+            assumeEnforcementPolicyCloseExisting(responseOpen);
+
             try (FrameTransport transport2 = new 
FrameTransport(_brokerAddress).connect())
             {
                 final Interaction interaction2 = transport2.newInteraction();
@@ -104,6 +111,10 @@ public class MixedPolicy extends BrokerAdminUsingTestBase
                                                                  
REFUSE_CONNECTION))
                         .open().consumeResponse(Open.class);
 
+            final Open responseOpen = 
interaction1.getLatestResponse(Open.class);
+            assumeSoleConnectionCapability(responseOpen);
+            assumeEnforcementPolicyRefuse(responseOpen);
+
             try (FrameTransport transport2 = new 
FrameTransport(_brokerAddress).connect())
             {
                 final Interaction interaction2 = transport2.newInteraction();
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 ca7d4a7..08ebda1 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
@@ -24,31 +24,28 @@ 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.SoleConnectionConnectionProperties.SOLE_CONNECTION_ENFORCEMENT_POLICY;
 import static 
org.apache.qpid.server.protocol.v1_0.type.extensions.soleconn.SoleConnectionConnectionProperties.SOLE_CONNECTION_FOR_CONTAINER;
 import static 
org.apache.qpid.server.protocol.v1_0.type.extensions.soleconn.SoleConnectionEnforcementPolicy.REFUSE_CONNECTION;
-import static org.hamcrest.CoreMatchers.hasItem;
-import static org.hamcrest.CoreMatchers.notNullValue;
+import static 
org.apache.qpid.tests.protocol.v1_0.extensions.soleconn.SoleConnectionAsserts.assertConnectionEstablishmentFailed;
+import static 
org.apache.qpid.tests.protocol.v1_0.extensions.soleconn.SoleConnectionAsserts.assertInvalidContainerId;
+import static 
org.apache.qpid.tests.protocol.v1_0.extensions.soleconn.SoleConnectionAsserts.assumeConnectionEstablishmentFailed;
+import static 
org.apache.qpid.tests.protocol.v1_0.extensions.soleconn.SoleConnectionAsserts.assumeDetectionPolicyStrong;
+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 static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.equalTo;
-import static org.hamcrest.Matchers.hasKey;
 import static org.hamcrest.Matchers.in;
-import static org.hamcrest.Matchers.is;
-import static org.junit.Assume.assumeThat;
 
 import java.net.InetSocketAddress;
-import java.util.Arrays;
 import java.util.Collections;
 
 import org.junit.Before;
 import org.junit.Test;
 
-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.extensions.soleconn.SoleConnectionDetectionPolicy;
-import org.apache.qpid.server.protocol.v1_0.type.transport.AmqpError;
 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.utils.BrokerAdmin;
 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
@@ -76,7 +73,9 @@ public class RefuseConnectionPolicy extends 
BrokerAdminUsingTestBase
                                                  .open().consumeResponse()
                                                  
.getLatestResponse(Open.class);
 
-            assertThat(Arrays.asList(responseOpen.getOfferedCapabilities()), 
hasItem(SOLE_CONNECTION_FOR_CONTAINER));
+            assumeSoleConnectionCapability(responseOpen);
+            assumeEnforcementPolicyRefuse(responseOpen);
+
             if 
(responseOpen.getProperties().containsKey(SOLE_CONNECTION_DETECTION_POLICY))
             {
                 
assertThat(responseOpen.getProperties().get(SOLE_CONNECTION_DETECTION_POLICY),
@@ -99,6 +98,10 @@ public class RefuseConnectionPolicy extends 
BrokerAdminUsingTestBase
                                                                  
REFUSE_CONNECTION))
                         .open().consumeResponse(Open.class);
 
+            final Open responseOpen = 
interaction1.getLatestResponse(Open.class);
+            assumeSoleConnectionCapability(responseOpen);
+            assumeEnforcementPolicyRefuse(responseOpen);
+
             try (FrameTransport transport2 = new 
FrameTransport(_brokerAddress).connect())
             {
                 final Interaction interaction2 = transport2.newInteraction();
@@ -110,26 +113,16 @@ public class RefuseConnectionPolicy extends 
BrokerAdminUsingTestBase
                                                                
REFUSE_CONNECTION))
                                                        
.open().consumeResponse()
                                                        
.getLatestResponse(Open.class);
-                
assertThat(Arrays.asList(responseOpen2.getOfferedCapabilities()),
-                           hasItem(SOLE_CONNECTION_FOR_CONTAINER));
-                assertThat(responseOpen2.getProperties(),
-                           
hasKey(Symbol.valueOf("amqp:connection-establishment-failed")));
-                
assertThat(responseOpen2.getProperties().get(Symbol.valueOf("amqp:connection-establishment-failed")),
-                           is(true));
-
-                final Close close2 = 
interaction2.consumeResponse().getLatestResponse(Close.class);
-                assertThat(close2.getError(), is(notNullValue()));
-                assertThat(close2.getError().getCondition(), 
is(equalTo(AmqpError.INVALID_FIELD)));
-                assertThat(close2.getError().getInfo(),
-                           
is(equalTo(Collections.singletonMap(Symbol.valueOf("invalid-field"),
-                                                               
Symbol.valueOf("container-id")))));
+
+                assertConnectionEstablishmentFailed(responseOpen2);
+                
assertInvalidContainerId(interaction2.consumeResponse().getLatestResponse(Close.class));
             }
         }
     }
 
 
     @Test
-    public void weakDetection() throws Exception
+    public void 
strongDetectionWhenConnectionWithoutSoleConnectionCapabilityOpened() throws 
Exception
     {
         try (FrameTransport transport1 = new 
FrameTransport(_brokerAddress).connect())
         {
@@ -139,6 +132,10 @@ public class RefuseConnectionPolicy extends 
BrokerAdminUsingTestBase
                         .openContainerId("testContainerId")
                         .open().consumeResponse(Open.class);
 
+            final Open responseOpen = 
interaction1.getLatestResponse(Open.class);
+            assumeSoleConnectionCapability(responseOpen);
+            assumeDetectionPolicyStrong(responseOpen);
+
             try (FrameTransport transport2 = new 
FrameTransport(_brokerAddress).connect())
             {
                 final Interaction interaction2 = transport2.newInteraction();
@@ -150,19 +147,9 @@ public class RefuseConnectionPolicy extends 
BrokerAdminUsingTestBase
                                                                
REFUSE_CONNECTION))
                                                        
.open().consumeResponse()
                                                        
.getLatestResponse(Open.class);
-                
assertThat(Arrays.asList(responseOpen2.getOfferedCapabilities()),
-                           hasItem(SOLE_CONNECTION_FOR_CONTAINER));
-                assertThat(responseOpen2.getProperties(),
-                           
hasKey(Symbol.valueOf("amqp:connection-establishment-failed")));
-                
assertThat(responseOpen2.getProperties().get(Symbol.valueOf("amqp:connection-establishment-failed")),
-                           is(true));
-
-                final Close close2 = 
interaction2.consumeResponse().getLatestResponse(Close.class);
-                assertThat(close2.getError(), is(notNullValue()));
-                assertThat(close2.getError().getCondition(), 
is(equalTo(AmqpError.INVALID_FIELD)));
-                assertThat(close2.getError().getInfo(),
-                           
is(equalTo(Collections.singletonMap(Symbol.valueOf("invalid-field"),
-                                                               
Symbol.valueOf("container-id")))));
+
+                assumeConnectionEstablishmentFailed(responseOpen2);
+                
assertInvalidContainerId(interaction2.consumeResponse().getLatestResponse(Close.class));
             }
         }
     }
@@ -178,15 +165,13 @@ public class RefuseConnectionPolicy extends 
BrokerAdminUsingTestBase
                                                   
.openDesiredCapabilities(SOLE_CONNECTION_FOR_CONTAINER)
                                                   
.openProperties(Collections.singletonMap(
                                                           
SOLE_CONNECTION_ENFORCEMENT_POLICY,
-                                                          REFUSE_CONNECTION))
+                                                          
REFUSE_CONNECTION.getValue()))
                                                   .open().consumeResponse()
                                                   
.getLatestResponse(Open.class);
-            assertThat(Arrays.asList(responseOpen.getOfferedCapabilities()), 
hasItem(SOLE_CONNECTION_FOR_CONTAINER));
-            if 
(responseOpen.getProperties().containsKey(SOLE_CONNECTION_DETECTION_POLICY))
-            {
-                
assumeThat(responseOpen.getProperties().get(SOLE_CONNECTION_DETECTION_POLICY),
-                           
is(equalTo(SoleConnectionDetectionPolicy.STRONG.getValue())));
-            }
+
+            assumeSoleConnectionCapability(responseOpen);
+            assumeEnforcementPolicyRefuse(responseOpen);
+            assumeDetectionPolicyStrong(responseOpen);
 
             try (FrameTransport transport2 = new 
FrameTransport(_brokerAddress).connect())
             {
@@ -197,19 +182,8 @@ public class RefuseConnectionPolicy extends 
BrokerAdminUsingTestBase
                                                        
.open().consumeResponse()
                                                        
.getLatestResponse(Open.class);
 
-                
assertThat(Arrays.asList(responseOpen2.getOfferedCapabilities()),
-                           hasItem(SOLE_CONNECTION_FOR_CONTAINER));
-                assertThat(responseOpen2.getProperties(),
-                           
hasKey(Symbol.valueOf("amqp:connection-establishment-failed")));
-                
assertThat(responseOpen2.getProperties().get(Symbol.valueOf("amqp:connection-establishment-failed")),
-                           is(true));
-
-                final Close close2 = 
interaction2.consumeResponse().getLatestResponse(Close.class);
-                assertThat(close2.getError(), is(notNullValue()));
-                assertThat(close2.getError().getCondition(), 
is(equalTo(AmqpError.INVALID_FIELD)));
-                assertThat(close2.getError().getInfo(),
-                           
is(equalTo(Collections.singletonMap(Symbol.valueOf("invalid-field"),
-                                                               
Symbol.valueOf("container-id")))));
+                assertConnectionEstablishmentFailed(responseOpen2);
+                
assertInvalidContainerId(interaction2.consumeResponse().getLatestResponse(Close.class));
             }
         }
     }
@@ -226,6 +200,10 @@ public class RefuseConnectionPolicy extends 
BrokerAdminUsingTestBase
                         .openDesiredCapabilities(SOLE_CONNECTION_FOR_CONTAINER)
                         .open().consumeResponse(Open.class);
 
+            final Open responseOpen = 
interaction1.getLatestResponse(Open.class);
+            assumeSoleConnectionCapability(responseOpen);
+            assumeEnforcementPolicyRefuse(responseOpen);
+
             try (FrameTransport transport2 = new 
FrameTransport(_brokerAddress).connect())
             {
                 final Interaction interaction2 = transport2.newInteraction();
@@ -236,19 +214,8 @@ public class RefuseConnectionPolicy extends 
BrokerAdminUsingTestBase
                                                        
.open().consumeResponse()
                                                        
.getLatestResponse(Open.class);
 
-                
assertThat(Arrays.asList(responseOpen2.getOfferedCapabilities()),
-                           hasItem(SOLE_CONNECTION_FOR_CONTAINER));
-                assertThat(responseOpen2.getProperties(),
-                           
hasKey(Symbol.valueOf("amqp:connection-establishment-failed")));
-                
assertThat(responseOpen2.getProperties().get(Symbol.valueOf("amqp:connection-establishment-failed")),
-                           is(true));
-
-                final Close close2 = 
interaction2.consumeResponse().getLatestResponse(Close.class);
-                assertThat(close2.getError(), is(notNullValue()));
-                assertThat(close2.getError().getCondition(), 
is(equalTo(AmqpError.INVALID_FIELD)));
-                assertThat(close2.getError().getInfo(),
-                           
is(equalTo(Collections.singletonMap(Symbol.valueOf("invalid-field"),
-                                                               
Symbol.valueOf("container-id")))));
+                assertConnectionEstablishmentFailed(responseOpen2);
+                
assertInvalidContainerId(interaction2.consumeResponse().getLatestResponse(Close.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
new file mode 100644
index 0000000..298ab00
--- /dev/null
+++ 
b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/SoleConnectionAsserts.java
@@ -0,0 +1,129 @@
+/*
+ * 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.extensions.soleconn;
+
+import static 
org.apache.qpid.server.protocol.v1_0.type.extensions.soleconn.SoleConnectionConnectionProperties.SOLE_CONNECTION_DETECTION_POLICY;
+import static 
org.apache.qpid.server.protocol.v1_0.type.extensions.soleconn.SoleConnectionConnectionProperties.SOLE_CONNECTION_ENFORCEMENT_POLICY;
+import static 
org.apache.qpid.server.protocol.v1_0.type.extensions.soleconn.SoleConnectionConnectionProperties.SOLE_CONNECTION_FOR_CONTAINER;
+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.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;
+import org.apache.qpid.server.protocol.v1_0.type.transport.AmqpError;
+import org.apache.qpid.server.protocol.v1_0.type.transport.Close;
+import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
+
+class SoleConnectionAsserts
+{
+    private static final Symbol CONNECTION_ESTABLISHMENT_FAILED = 
Symbol.valueOf("amqp:connection-establishment-failed");
+    private static final Symbol SOLE_CONNECTION_ENFORCEMENT = 
Symbol.valueOf("sole-connection-enforcement");
+    private static final Symbol INVALID_FIELD = 
Symbol.valueOf("invalid-field");
+    private static final Symbol CONTAINER_ID = Symbol.valueOf("container-id");
+
+    private SoleConnectionAsserts()
+    {
+    }
+
+    static void assumeSoleConnectionCapability(Open open)
+    {
+        assumeThat(open.getOfferedCapabilities(), is(notNullValue()));
+        assumeThat(open.getOfferedCapabilities(), 
hasItemInArray(SOLE_CONNECTION_FOR_CONTAINER));
+    }
+
+    static void assertSoleConnectionCapability(Open open)
+    {
+        assertThat(open.getOfferedCapabilities(), is(notNullValue()));
+        assertThat(open.getOfferedCapabilities(), 
hasItemInArray(SOLE_CONNECTION_FOR_CONTAINER));
+    }
+
+    static void assumeEnforcementPolicyCloseExisting(Open open)
+    {
+        assumeThat(open.getProperties(), is(notNullValue()));
+        assumeThat(open.getProperties(), 
hasEntry(SOLE_CONNECTION_ENFORCEMENT_POLICY, CLOSE_EXISTING.getValue()));
+    }
+
+    static void assertEnforcementPolicyCloseExisting(Open open)
+    {
+        assertThat(open.getProperties(), is(notNullValue()));
+        assertThat(open.getProperties(), 
hasEntry(SOLE_CONNECTION_ENFORCEMENT_POLICY, CLOSE_EXISTING.getValue()));
+    }
+
+    static void assumeEnforcementPolicyRefuse(Open open)
+    {
+        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)))));
+    }
+
+    static void assumeDetectionPolicyStrong(Open open)
+    {
+        assumeThat(open.getProperties(), is(notNullValue()));
+        assumeThat(open.getProperties(),
+                   anyOf(hasEntry(SOLE_CONNECTION_DETECTION_POLICY, 
SoleConnectionDetectionPolicy.STRONG.getValue()),
+                         is(not(hasKey(SOLE_CONNECTION_DETECTION_POLICY)))));
+    }
+
+    static void assertConnectionEstablishmentFailed(final Open open)
+    {
+        assertThat(open.getProperties(), is(notNullValue()));
+        assertThat(open.getProperties(), 
Matchers.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));
+        assertThat(open.getProperties(), 
hasEntry(CONNECTION_ESTABLISHMENT_FAILED, true));
+    }
+
+
+    static void assertResourceLocked(final Close close)
+    {
+        assertThat(close.getError(), is(notNullValue()));
+        assertThat(close.getError().getCondition(), 
is(equalTo(AmqpError.RESOURCE_LOCKED)));
+        assertThat(close.getError().getInfo(), 
is(equalTo(Collections.singletonMap(SOLE_CONNECTION_ENFORCEMENT, true))));
+    }
+
+
+    static void assertInvalidContainerId(final Close close)
+    {
+        assertThat(close.getError(), is(notNullValue()));
+        assertThat(close.getError().getCondition(), 
is(equalTo(AmqpError.INVALID_FIELD)));
+        assertThat(close.getError().getInfo(), 
is(equalTo(Collections.singletonMap(INVALID_FIELD, CONTAINER_ID))));
+    }
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to