QPID-8083: [System Tests] [REST/HTTP] Eliminate PortRestTest

Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/3aad3e3d
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/3aad3e3d
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/3aad3e3d

Branch: refs/heads/master
Commit: 3aad3e3d3c505b9cee060691b1a5bb65866f1223
Parents: f09c53c
Author: Keith Wall <kw...@apache.org>
Authored: Sat Feb 17 19:19:07 2018 +0000
Committer: Keith Wall <kw...@apache.org>
Committed: Mon Feb 19 07:52:42 2018 +0000

----------------------------------------------------------------------
 .../server/model/port/AmqpPortImplTest.java     | 189 ++++++++---
 .../apache/qpid/systest/rest/PortRestTest.java  | 313 -------------------
 2 files changed, 138 insertions(+), 364 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/3aad3e3d/broker-core/src/test/java/org/apache/qpid/server/model/port/AmqpPortImplTest.java
----------------------------------------------------------------------
diff --git 
a/broker-core/src/test/java/org/apache/qpid/server/model/port/AmqpPortImplTest.java
 
b/broker-core/src/test/java/org/apache/qpid/server/model/port/AmqpPortImplTest.java
index 8458dac..8c9654d 100644
--- 
a/broker-core/src/test/java/org/apache/qpid/server/model/port/AmqpPortImplTest.java
+++ 
b/broker-core/src/test/java/org/apache/qpid/server/model/port/AmqpPortImplTest.java
@@ -46,14 +46,19 @@ import org.apache.qpid.server.model.AuthenticationProvider;
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.BrokerModel;
 import org.apache.qpid.server.model.BrokerTestHelper;
-import org.apache.qpid.server.model.Container;
+import org.apache.qpid.server.model.KeyStore;
 import org.apache.qpid.server.model.Model;
+import org.apache.qpid.server.model.Port;
 import org.apache.qpid.server.model.SystemConfig;
+import org.apache.qpid.server.model.Transport;
+import org.apache.qpid.server.model.TrustStore;
 import org.apache.qpid.test.utils.QpidTestCase;
 
 public class AmqpPortImplTest extends QpidTestCase
 {
     private static final String AUTHENTICATION_PROVIDER_NAME = "test";
+    private static final String KEYSTORE_NAME = "keystore";
+    private static final String TRUSTSTORE_NAME = "truststore";
     private TaskExecutor _taskExecutor;
     private Broker _broker;
     private AmqpPortImpl _port;
@@ -74,13 +79,23 @@ public class AmqpPortImplTest extends QpidTestCase
         when(_broker.getCategoryClass()).thenReturn(Broker.class);
         when(_broker.getEventLogger()).thenReturn(new EventLogger());
 
-        AuthenticationProvider<?> provider = 
mock(AuthenticationProvider.class);
-        when(provider.getName()).thenReturn(AUTHENTICATION_PROVIDER_NAME);
-        when(provider.getParent()).thenReturn(_broker);
-        when(provider.getParent()).thenReturn(_broker);
-        when(provider.getMechanisms()).thenReturn(Arrays.asList("PLAIN"));
-        
when(_broker.getChildren(AuthenticationProvider.class)).thenReturn(Collections.<AuthenticationProvider>singleton(provider));
-        when(_broker.getChildByName(AuthenticationProvider.class, 
AUTHENTICATION_PROVIDER_NAME)).thenReturn(provider);
+        KeyStore<?> keyStore = mock(KeyStore.class);
+        when(keyStore.getName()).thenReturn(KEYSTORE_NAME);
+        when(keyStore.getParent()).thenReturn(_broker);
+
+        TrustStore<?> trustStore = mock(TrustStore.class);
+        when(trustStore.getName()).thenReturn(TRUSTSTORE_NAME);
+        when(trustStore.getParent()).thenReturn(_broker);
+
+        AuthenticationProvider<?> authProvider = 
mock(AuthenticationProvider.class);
+        when(authProvider.getName()).thenReturn(AUTHENTICATION_PROVIDER_NAME);
+        when(authProvider.getParent()).thenReturn(_broker);
+        when(authProvider.getMechanisms()).thenReturn(Arrays.asList("PLAIN"));
+
+        
when(_broker.getChildren(AuthenticationProvider.class)).thenReturn(Collections.singleton(authProvider));
+        
when(_broker.getChildren(KeyStore.class)).thenReturn(Collections.singleton(keyStore));
+        
when(_broker.getChildren(TrustStore.class)).thenReturn(Collections.singleton(trustStore));
+        when(_broker.getChildByName(AuthenticationProvider.class, 
AUTHENTICATION_PROVIDER_NAME)).thenReturn(authProvider);
     }
 
     @Override
@@ -104,28 +119,102 @@ public class AmqpPortImplTest extends QpidTestCase
         }
     }
 
-    public void testOnCreateValidation() throws Exception
+    public void testPortAlreadyBound() throws Exception
+    {
+        try (ServerSocket socket = openSocket())
+        {
+            try
+            {
+                createPort(getTestName(),
+                           Collections.singletonMap(AmqpPort.PORT, 
socket.getLocalPort()));
+                fail("Creation should fail due to validation check");
+            }
+            catch (IllegalConfigurationException e)
+            {
+                assertEquals("Unexpected exception message",
+                             String.format("Cannot bind to port %d and binding 
address '%s'. Port is already is use.",
+                                           socket.getLocalPort(), "*"), 
e.getMessage());
+            }
+        }
+    }
+
+    public void testCreateTls()
+    {
+        Map<String, Object> attributes = new HashMap<>();
+        attributes.put(AmqpPort.TRANSPORTS, 
Collections.singletonList(Transport.SSL));
+        attributes.put(AmqpPort.KEY_STORE, KEYSTORE_NAME);
+        _port = createPort(getTestName(), attributes);
+    }
+
+    public void testCreateTlsClientAuth()
+    {
+        Map<String, Object> attributes = new HashMap<>();
+        attributes.put(AmqpPort.TRANSPORTS, 
Collections.singletonList(Transport.SSL));
+        attributes.put(AmqpPort.KEY_STORE, KEYSTORE_NAME);
+        attributes.put(AmqpPort.TRUST_STORES, 
Collections.singletonList(TRUSTSTORE_NAME));
+        _port = createPort(getTestName(), attributes);
+    }
+
+    public void testTlsWithoutKeyStore()
     {
-        ServerSocket socket = openSocket();
         try
         {
-            createPort(getTestName(), 
Collections.<String,Object>singletonMap(AmqpPort.PORT, socket.getLocalPort()));
-            fail("Creation should fail due to validation check");
+            createPort(getTestName(), 
Collections.singletonMap(Port.TRANSPORTS, 
Collections.singletonList(Transport.SSL)));
+            fail("Exception not thrown");
         }
         catch (IllegalConfigurationException e)
         {
-            assertEquals("Unexpected exception message",
-                         String.format("Cannot bind to port %d and binding 
address '%s'. Port is already is use.",
-                                       socket.getLocalPort(), "*"), 
e.getMessage());
+            // PASS
         }
-        finally
+
+        try
         {
-            socket.close();
+            createPort(getTestName(), 
Collections.singletonMap(Port.TRANSPORTS, Arrays.asList(Transport.SSL, 
Transport.TCP)));
+            fail("Exception not thrown");
         }
+        catch (IllegalConfigurationException e)
+        {
+            // PASS
+        }
+    }
+
+    public void testTlsWantNeedWithoutTrustStores()
+    {
+        Map<String, Object> base = new HashMap<>();
+        base.put(AmqpPort.TRANSPORTS, 
Collections.singletonList(Transport.SSL));
+        base.put(AmqpPort.KEY_STORE, KEYSTORE_NAME);
 
+
+        try
+        {
+            Map<String, Object> attributes = new HashMap<>(base);
+            attributes.put(Port.NEED_CLIENT_AUTH, true);
+            createPort(getTestName(), attributes);
+            fail("Exception not thrown");
+        }
+        catch (IllegalConfigurationException e)
+        {
+            // PASS
+        }
+
+        try
+        {
+            Map<String, Object> attributes = new HashMap<>(base);
+            attributes.put(Port.WANT_CLIENT_AUTH, true);
+            createPort(getTestName(), attributes);
+            fail("Exception not thrown");
+        }
+        catch (IllegalConfigurationException e)
+        {
+            // PASS
+        }
+    }
+
+    public void testOnCreateValidation()
+    {
         try
         {
-            createPort(getTestName(), Collections.<String, 
Object>singletonMap(AmqpPort.NUMBER_OF_SELECTORS, "-1"));
+            createPort(getTestName(), 
Collections.singletonMap(AmqpPort.NUMBER_OF_SELECTORS, "-1"));
             fail("Exception not thrown for negative number of selectors");
         }
         catch (IllegalConfigurationException e)
@@ -134,7 +223,7 @@ public class AmqpPortImplTest extends QpidTestCase
         }
         try
         {
-            createPort(getTestName(), Collections.<String, 
Object>singletonMap(AmqpPort.THREAD_POOL_SIZE, "-1"));
+            createPort(getTestName(), 
Collections.singletonMap(AmqpPort.THREAD_POOL_SIZE, "-1"));
             fail("Exception not thrown for negative thread pool size");
         }
         catch (IllegalConfigurationException e)
@@ -144,8 +233,8 @@ public class AmqpPortImplTest extends QpidTestCase
         try
         {
             createPort(getTestName(),
-                       Collections.<String, 
Object>singletonMap(AmqpPort.NUMBER_OF_SELECTORS,
-                                                                
AmqpPort.DEFAULT_PORT_AMQP_THREAD_POOL_SIZE));
+                       Collections.singletonMap(AmqpPort.NUMBER_OF_SELECTORS,
+                                                
AmqpPort.DEFAULT_PORT_AMQP_THREAD_POOL_SIZE));
             fail("Exception not thrown for number of selectors equal to thread 
pool size");
         }
         catch (IllegalConfigurationException e)
@@ -154,12 +243,12 @@ public class AmqpPortImplTest extends QpidTestCase
         }
     }
 
-    public void testOnChangeThreadPoolValidation() throws Exception
+    public void testOnChangeThreadPoolValidation()
     {
         _port = createPort(getTestName());
         try
         {
-            _port.setAttributes(Collections.<String, 
Object>singletonMap(AmqpPort.NUMBER_OF_SELECTORS, "-1"));
+            
_port.setAttributes(Collections.singletonMap(AmqpPort.NUMBER_OF_SELECTORS, 
"-1"));
             fail("Exception not thrown for negative number of selectors");
         }
         catch (IllegalConfigurationException e)
@@ -168,7 +257,7 @@ public class AmqpPortImplTest extends QpidTestCase
         }
         try
         {
-            _port.setAttributes(Collections.<String, 
Object>singletonMap(AmqpPort.THREAD_POOL_SIZE, "-1"));
+            
_port.setAttributes(Collections.singletonMap(AmqpPort.THREAD_POOL_SIZE, "-1"));
             fail("Exception not thrown for negative thread pool size");
         }
         catch (IllegalConfigurationException e)
@@ -177,8 +266,8 @@ public class AmqpPortImplTest extends QpidTestCase
         }
         try
         {
-            _port.setAttributes(Collections.<String, 
Object>singletonMap(AmqpPort.NUMBER_OF_SELECTORS,
-                                                                         
AmqpPort.DEFAULT_PORT_AMQP_THREAD_POOL_SIZE));
+            
_port.setAttributes(Collections.singletonMap(AmqpPort.NUMBER_OF_SELECTORS,
+                                                         
AmqpPort.DEFAULT_PORT_AMQP_THREAD_POOL_SIZE));
             fail("Exception not thrown for number of selectors equal to thread 
pool size");
         }
         catch (IllegalConfigurationException e)
@@ -187,31 +276,6 @@ public class AmqpPortImplTest extends QpidTestCase
         }
     }
 
-    private AmqpPortImpl createPort(final String portName)
-    {
-        return createPort(portName, Collections.<String, Object>emptyMap());
-    }
-
-    private AmqpPortImpl createPort(final String portName, final Map<String, 
Object> attributes)
-    {
-        Map<String, Object> portAttributes = new HashMap<>();
-        portAttributes.put(AmqpPort.PORT, 0);
-        portAttributes.put(AmqpPort.NAME, portName);
-        portAttributes.put(AmqpPort.AUTHENTICATION_PROVIDER, 
AUTHENTICATION_PROVIDER_NAME);
-        portAttributes.putAll(attributes);
-        AmqpPortImpl port = new AmqpPortImpl(portAttributes, _broker);
-        port.create();
-        return port;
-    }
-
-    private ServerSocket openSocket() throws IOException
-    {
-        ServerSocket serverSocket = new ServerSocket();
-        serverSocket.setReuseAddress(true);
-        serverSocket.bind(new InetSocketAddress(0));
-        return serverSocket;
-    }
-
     public void testConnectionCounting()
     {
         Map<String, Object> attributes = new HashMap<>();
@@ -245,7 +309,30 @@ public class AmqpPortImplTest extends QpidTestCase
         verify(mockLogger, times(1)).message(any(LogSubject.class), 
any(LogMessage.class));
 
         assertFalse(_port.canAcceptNewConnection(new 
InetSocketAddress("example.org", 0)));
+    }
 
+    private AmqpPortImpl createPort(final String portName)
+    {
+        return createPort(portName, Collections.emptyMap());
+    }
 
+    private AmqpPortImpl createPort(final String portName, final Map<String, 
Object> attributes)
+    {
+        Map<String, Object> portAttributes = new HashMap<>();
+        portAttributes.put(AmqpPort.PORT, 0);
+        portAttributes.put(AmqpPort.NAME, portName);
+        portAttributes.put(AmqpPort.AUTHENTICATION_PROVIDER, 
AUTHENTICATION_PROVIDER_NAME);
+        portAttributes.putAll(attributes);
+        AmqpPortImpl port = new AmqpPortImpl(portAttributes, _broker);
+        port.create();
+        return port;
+    }
+
+    private ServerSocket openSocket() throws IOException
+    {
+        ServerSocket serverSocket = new ServerSocket();
+        serverSocket.setReuseAddress(true);
+        serverSocket.bind(new InetSocketAddress(0));
+        return serverSocket;
     }
 }

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/3aad3e3d/systests/src/test/java/org/apache/qpid/systest/rest/PortRestTest.java
----------------------------------------------------------------------
diff --git 
a/systests/src/test/java/org/apache/qpid/systest/rest/PortRestTest.java 
b/systests/src/test/java/org/apache/qpid/systest/rest/PortRestTest.java
deleted file mode 100644
index 9c3ee44..0000000
--- a/systests/src/test/java/org/apache/qpid/systest/rest/PortRestTest.java
+++ /dev/null
@@ -1,313 +0,0 @@
-/*
- *
- * 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.systest.rest;
-
-import static javax.servlet.http.HttpServletResponse.SC_CREATED;
-import static javax.servlet.http.HttpServletResponse.SC_OK;
-import static 
org.apache.qpid.server.management.plugin.servlet.rest.AbstractServlet.SC_UNPROCESSABLE_ENTITY;
-
-import java.net.InetSocketAddress;
-import java.net.ServerSocket;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.qpid.server.model.AuthenticationProvider;
-import org.apache.qpid.server.model.Port;
-import org.apache.qpid.server.model.Protocol;
-import org.apache.qpid.server.model.State;
-import org.apache.qpid.server.model.SystemConfig;
-import org.apache.qpid.server.model.Transport;
-import 
org.apache.qpid.server.security.auth.manager.AnonymousAuthenticationManager;
-import org.apache.qpid.test.utils.TestBrokerConfiguration;
-
-public class PortRestTest extends QpidRestTestCase
-{
-
-    public void testGet() throws Exception
-    {
-        List<Map<String, Object>> ports = 
getRestTestHelper().getJsonAsList("port");
-        assertNotNull("Port data cannot be null", ports);
-        assertEquals("Unexpected number of ports", 2, ports.size());
-
-        String httpPortName = TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT;
-        Map<String, Object> portData = getRestTestHelper().find(Port.NAME, 
httpPortName, ports);
-        assertNotNull("Http port " + httpPortName + " is not found", portData);
-        Asserts.assertPortAttributes(portData);
-
-        String amqpPortName = TestBrokerConfiguration.ENTRY_NAME_AMQP_PORT;
-        Map<String, Object> amqpPortData = getRestTestHelper().find(Port.NAME, 
amqpPortName, ports);
-        assertNotNull("Amqp port " + amqpPortName + " is not found", 
amqpPortData);
-        Asserts.assertPortAttributes(amqpPortData);
-    }
-
-    public void testGetPort() throws Exception
-    {
-        List<Map<String, Object>> ports = 
getRestTestHelper().getJsonAsList("port");
-        assertNotNull("Ports data cannot be null", ports);
-        assertEquals("Unexpected number of ports", 2, ports.size());
-        for (Map<String, Object> portMap : ports)
-        {
-            String portName = (String) portMap.get(Port.NAME);
-            assertNotNull("Port name attribute is not found", portName);
-            Map<String, Object> portData = 
getRestTestHelper().getJsonAsMap("port/" + 
getRestTestHelper().encodeAsUTF(portName));
-            assertNotNull("Port " + portName + " is not found", portData);
-            Asserts.assertPortAttributes(portData);
-        }
-    }
-
-    public void testPutAmqpPortWithMinimumAttributes() throws Exception
-    {
-        String portName = "test-port";
-        Map<String, Object> attributes = new HashMap<String, Object>();
-        attributes.put(Port.NAME, portName);
-        attributes.put(Port.PORT, 0);
-        attributes.put(Port.AUTHENTICATION_PROVIDER, 
TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER);
-
-        getRestTestHelper().submitRequest("port/" + portName, "PUT", 
attributes, SC_CREATED);
-
-        Map<String, Object> port = getRestTestHelper().getJsonAsMap("port/" + 
portName);
-
-        Asserts.assertPortAttributes(port);
-
-        // make sure that port is there after broker restart
-        restartDefaultBroker();
-
-        port = getRestTestHelper().getJsonAsMap("port/" + portName);
-        Asserts.assertPortAttributes(port);
-    }
-
-    public void testPutCreateAndUpdateAmqpPort() throws Exception
-    {
-        String portName = "test-port";
-        Map<String, Object> attributes = new HashMap<String, Object>();
-        attributes.put(Port.NAME, portName);
-        attributes.put(Port.PORT, 0);
-        attributes.put(Port.AUTHENTICATION_PROVIDER, 
TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER);
-
-        getRestTestHelper().submitRequest("port/" + portName, "PUT", 
attributes, SC_CREATED);
-
-        Map<String, Object> port = getRestTestHelper().getJsonAsMap("port/" + 
portName);
-        Asserts.assertPortAttributes(port);
-
-        Map<String, Object> authProviderAttributes = new HashMap<String, 
Object>();
-        authProviderAttributes.put(AuthenticationProvider.TYPE, 
AnonymousAuthenticationManager.PROVIDER_TYPE);
-        authProviderAttributes.put(AuthenticationProvider.NAME, 
TestBrokerConfiguration.ENTRY_NAME_ANONYMOUS_PROVIDER);
-
-        getRestTestHelper().submitRequest("authenticationprovider/" + 
TestBrokerConfiguration.ENTRY_NAME_ANONYMOUS_PROVIDER, "PUT", 
authProviderAttributes, SC_CREATED);
-
-        attributes = new HashMap<>(port);
-        attributes.put(Port.AUTHENTICATION_PROVIDER, 
TestBrokerConfiguration.ENTRY_NAME_ANONYMOUS_PROVIDER);
-        attributes.put(Port.PROTOCOLS, 
Collections.singleton(Protocol.AMQP_0_9_1));
-
-        getRestTestHelper().submitRequest("port/" + portName, "PUT", 
attributes, SC_OK);
-        port = getRestTestHelper().getJsonAsMap("port/" + portName);
-        assertEquals("Unexpected authentication provider",
-                     TestBrokerConfiguration.ENTRY_NAME_ANONYMOUS_PROVIDER,
-                     port.get(Port.AUTHENTICATION_PROVIDER));
-        assertEquals("Unexpected authentication protocols",
-                     new 
HashSet<>(Collections.singleton(Protocol.AMQP_0_9_1.name())),
-                     new HashSet<>((Collection<String>) 
port.get(Port.PROTOCOLS)));
-    }
-
-    public void testUpdatePortTransportFromTCPToSSLWhenKeystoreIsConfigured() 
throws Exception
-    {
-        String portName = TestBrokerConfiguration.ENTRY_NAME_AMQP_PORT;
-        Map<String, Object> attributes = new HashMap<String, Object>();
-        attributes.put(Port.NAME, portName);
-        attributes.put(Port.TRANSPORTS, Collections.singleton(Transport.SSL));
-        attributes.put(Port.KEY_STORE, 
TestBrokerConfiguration.ENTRY_NAME_SSL_KEYSTORE);
-
-        int responseCode = getRestTestHelper().submitRequest("port/" + 
portName, "PUT", attributes);
-        assertEquals("Transport has not been changed to SSL " , 200, 
responseCode);
-
-        Map<String, Object> port = getRestTestHelper().getJsonAsMap("port/" + 
portName);
-
-        @SuppressWarnings("unchecked")
-        Collection<String> transports = (Collection<String>) 
port.get(Port.TRANSPORTS);
-        assertEquals("Unexpected auth provider", new 
HashSet<String>(Arrays.asList(Transport.SSL.name())),
-                new HashSet<String>(transports));
-
-        String keyStore = (String) port.get(Port.KEY_STORE);
-        assertEquals("Unexpected auth provider", 
TestBrokerConfiguration.ENTRY_NAME_SSL_KEYSTORE, keyStore);
-    }
-
-    public void 
testUpdateTransportFromTCPToSSLWithoutKeystoreConfiguredFails() throws Exception
-    {
-        String portName = TestBrokerConfiguration.ENTRY_NAME_AMQP_PORT;
-        Map<String, Object> attributes = new HashMap<String, Object>();
-        attributes.put(Port.NAME, portName);
-        attributes.put(Port.TRANSPORTS, Collections.singleton(Transport.SSL));
-
-        int responseCode = getRestTestHelper().submitRequest("port/" + 
portName, "PUT", attributes);
-        assertEquals("Creation of SSL port without keystore should fail", 
SC_UNPROCESSABLE_ENTITY, responseCode);
-    }
-
-    public void testUpdateWantNeedClientAuth() throws Exception
-    {
-        String portName = TestBrokerConfiguration.ENTRY_NAME_SSL_PORT;
-        Map<String, Object> attributes = new HashMap<String, Object>();
-        attributes.put(Port.NAME, portName);
-        attributes.put(Port.PORT, DEFAULT_SSL_PORT);
-        attributes.put(Port.AUTHENTICATION_PROVIDER, 
TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER);
-        attributes.put(Port.TRANSPORTS, Collections.singleton(Transport.SSL));
-        attributes.put(Port.KEY_STORE, 
TestBrokerConfiguration.ENTRY_NAME_SSL_KEYSTORE);
-        attributes.put(Port.TRUST_STORES, 
Collections.singleton(TestBrokerConfiguration.ENTRY_NAME_SSL_TRUSTSTORE));
-
-        int responseCode = getRestTestHelper().submitRequest("port/" + 
portName, "PUT", attributes);
-        assertEquals("SSL port was not added", 201, responseCode);
-
-        attributes.put(Port.NEED_CLIENT_AUTH, true);
-        attributes.put(Port.WANT_CLIENT_AUTH, true);
-
-        responseCode = getRestTestHelper().submitRequest("port/" + portName, 
"PUT", attributes);
-        assertEquals("Attributes for need/want client auth are not set", 200, 
responseCode);
-
-        Map<String, Object> port = getRestTestHelper().getJsonAsMap("port/" + 
portName);
-        assertEquals("Unexpected " + Port.NEED_CLIENT_AUTH, true, 
port.get(Port.NEED_CLIENT_AUTH));
-        assertEquals("Unexpected " + Port.WANT_CLIENT_AUTH, true, 
port.get(Port.WANT_CLIENT_AUTH));
-        assertEquals("Unexpected " + Port.KEY_STORE, 
TestBrokerConfiguration.ENTRY_NAME_SSL_KEYSTORE, port.get(Port.KEY_STORE));
-        @SuppressWarnings("unchecked")
-        Collection<String> trustStores = (Collection<String>) 
port.get(Port.TRUST_STORES);
-        assertEquals("Unexpected auth provider", new 
HashSet<String>(Arrays.asList(TestBrokerConfiguration.ENTRY_NAME_SSL_TRUSTSTORE)),
-                new HashSet<String>(trustStores));
-
-        attributes = new HashMap<String, Object>();
-        attributes.put(Port.NAME, portName);
-        attributes.put(Port.TRANSPORTS, Collections.singleton(Transport.TCP));
-
-        responseCode = getRestTestHelper().submitRequest("port/" + portName, 
"PUT", attributes);
-        assertEquals("Should not be able to change transport to TCP without 
reseting of attributes for need/want client auth",
-                SC_UNPROCESSABLE_ENTITY, responseCode);
-
-        attributes = new HashMap<String, Object>();
-        attributes.put(Port.NAME, portName);
-        attributes.put(Port.TRANSPORTS, Collections.singleton(Transport.TCP));
-        attributes.put(Port.NEED_CLIENT_AUTH, false);
-        attributes.put(Port.WANT_CLIENT_AUTH, false);
-
-        responseCode = getRestTestHelper().submitRequest("port/" + portName, 
"PUT", attributes);
-        assertEquals("Should be able to change transport to TCP ", 200, 
responseCode);
-
-        port = getRestTestHelper().getJsonAsMap("port/" + portName);
-        assertEquals("Unexpected " + Port.NEED_CLIENT_AUTH, false, 
port.get(Port.NEED_CLIENT_AUTH));
-        assertEquals("Unexpected " + Port.WANT_CLIENT_AUTH, false, 
port.get(Port.WANT_CLIENT_AUTH));
-
-        @SuppressWarnings("unchecked")
-        Collection<String> transports = (Collection<String>) 
port.get(Port.TRANSPORTS);
-        assertEquals("Unexpected auth provider", new 
HashSet<String>(Arrays.asList(Transport.TCP.name())),
-                new HashSet<String>(transports));
-    }
-
-    public void testUpdateSettingWantNeedCertificateFailsForNonSSLPort() 
throws Exception
-    {
-        String portName = TestBrokerConfiguration.ENTRY_NAME_AMQP_PORT;
-        Map<String, Object> attributes = new HashMap<String, Object>();
-        attributes.put(Port.NAME, portName);
-        attributes.put(Port.NEED_CLIENT_AUTH, true);
-        int responseCode = getRestTestHelper().submitRequest("port/" + 
portName, "PUT", attributes);
-        assertEquals("Unexpected response when trying to set 'needClientAuth' 
on non-SSL port", SC_UNPROCESSABLE_ENTITY, responseCode);
-
-        attributes = new HashMap<String, Object>();
-        attributes.put(Port.NAME, portName);
-        attributes.put(Port.WANT_CLIENT_AUTH, true);
-        responseCode = getRestTestHelper().submitRequest("port/" + portName, 
"PUT", attributes);
-        assertEquals("Unexpected response when trying to set 'wantClientAuth' 
on non-SSL port", SC_UNPROCESSABLE_ENTITY, responseCode);
-    }
-
-    public void testUpdatePortAuthenticationProvider() throws Exception
-    {
-        String portName = TestBrokerConfiguration.ENTRY_NAME_AMQP_PORT;
-        Map<String, Object> attributes = new HashMap<String, Object>();
-        attributes.put(Port.NAME, portName);
-        attributes.put(Port.AUTHENTICATION_PROVIDER, "non-existing");
-        int responseCode = getRestTestHelper().submitRequest("port/" + 
portName, "PUT", attributes);
-        assertEquals("Unexpected response when trying to change auth provider 
to non-existing one", SC_UNPROCESSABLE_ENTITY, responseCode);
-
-        attributes = new HashMap<String, Object>();
-        attributes.put(Port.NAME, portName);
-        attributes.put(Port.AUTHENTICATION_PROVIDER, 
TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER);
-        responseCode = getRestTestHelper().submitRequest("port/" + portName, 
"PUT", attributes);
-        assertEquals("Unexpected response when trying to change auth provider 
to existing one", 200, responseCode);
-        Map<String, Object> port = getRestTestHelper().getJsonAsMap("port/" + 
portName);
-        assertEquals("Unexpected auth provider", 
TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER, 
port.get(Port.AUTHENTICATION_PROVIDER));
-    }
-
-    public void testDefaultAmqpPortIsQuiescedWhenInManagementMode() throws 
Exception
-    {
-        // restart Broker in management port
-        stopDefaultBroker();
-        startDefaultBroker(true);
-        
getRestTestHelper().setUsernameAndPassword(SystemConfig.MANAGEMENT_MODE_USER_NAME,
 MANAGEMENT_MODE_PASSWORD);
-
-        String amqpPortName = TestBrokerConfiguration.ENTRY_NAME_AMQP_PORT;
-        Map<String, Object> portData =
-                getRestTestHelper().getJsonAsMap("port/" + 
getRestTestHelper().encodeAsUTF(amqpPortName));
-        Asserts.assertPortAttributes(portData, State.QUIESCED);
-    }
-
-    public void testDeletePort() throws Exception
-    {
-        String amqpPortName = TestBrokerConfiguration.ENTRY_NAME_AMQP_PORT;
-        Map<String, Object> portData =
-                getRestTestHelper().getJsonAsMap("port/" + 
getRestTestHelper().encodeAsUTF(amqpPortName));
-        assertFalse("Port data are not found", portData.isEmpty());
-
-        int deleteResponseCode = getRestTestHelper().submitRequest("port/" + 
amqpPortName, "DELETE");
-        assertEquals("Port deletion should be allowed", 200, 
deleteResponseCode);
-
-        getRestTestHelper().submitRequest("port/" + 
getRestTestHelper().encodeAsUTF(amqpPortName), "GET", 
HttpServletResponse.SC_NOT_FOUND);
-    }
-
-    public void testNewPortCreationFailsWhenPortIsAlreadyBound() throws 
Exception
-    {
-        ServerSocket serverSocket = new ServerSocket();
-        serverSocket.setReuseAddress(true);
-        serverSocket.bind(new InetSocketAddress(0));
-        try
-        {
-            int occupiedPort = serverSocket.getLocalPort();
-            getLogger().debug("Testing port configured object creation for 
already occupied port {}", occupiedPort);
-
-            String newPortName = "reused-port";
-            Map<String, Object> attributes = new HashMap<String, Object>();
-            attributes.put(Port.NAME, newPortName);
-            attributes.put(Port.PORT, occupiedPort);  // port in use
-            attributes.put(Port.AUTHENTICATION_PROVIDER, 
TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER);
-
-            int responseCode = getRestTestHelper().submitRequest("port/" + 
newPortName, "PUT", attributes);
-            assertEquals("Unexpected response code for port creation", 
SC_UNPROCESSABLE_ENTITY, responseCode);
-            getRestTestHelper().submitRequest("port/" + 
getRestTestHelper().encodeAsUTF(newPortName),
-                                              "GET",
-                                              
HttpServletResponse.SC_NOT_FOUND);
-        }
-        finally
-        {
-            serverSocket.close();
-        }
-    }
-}


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

Reply via email to