From commits-return-43802-archive-asf-public=cust-asf.ponee.io@qpid.apache.org Mon Feb 19 08:53:21 2018 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id 59A64180787 for ; Mon, 19 Feb 2018 08:53:20 +0100 (CET) Received: (qmail 51259 invoked by uid 500); 19 Feb 2018 07:53:19 -0000 Mailing-List: contact commits-help@qpid.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@qpid.apache.org Delivered-To: mailing list commits@qpid.apache.org Received: (qmail 51102 invoked by uid 99); 19 Feb 2018 07:53:19 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 19 Feb 2018 07:53:19 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 03524DFC3E; Mon, 19 Feb 2018 07:53:17 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: kwall@apache.org To: commits@qpid.apache.org Date: Mon, 19 Feb 2018 07:53:20 -0000 Message-Id: In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [4/5] qpid-broker-j git commit: QPID-8083: [System Tests] [REST/HTTP] Eliminate PortRestTest 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 Authored: Sat Feb 17 19:19:07 2018 +0000 Committer: Keith Wall 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.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 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 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.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 base = new HashMap<>(); + base.put(AmqpPort.TRANSPORTS, Collections.singletonList(Transport.SSL)); + base.put(AmqpPort.KEY_STORE, KEYSTORE_NAME); + + try + { + Map attributes = new HashMap<>(base); + attributes.put(Port.NEED_CLIENT_AUTH, true); + createPort(getTestName(), attributes); + fail("Exception not thrown"); + } + catch (IllegalConfigurationException e) + { + // PASS + } + + try + { + Map 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.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.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.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.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.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.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.emptyMap()); - } - - private AmqpPortImpl createPort(final String portName, final Map attributes) - { - Map 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 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 attributes) + { + Map 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> 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 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 amqpPortData = getRestTestHelper().find(Port.NAME, amqpPortName, ports); - assertNotNull("Amqp port " + amqpPortName + " is not found", amqpPortData); - Asserts.assertPortAttributes(amqpPortData); - } - - public void testGetPort() throws Exception - { - List> ports = getRestTestHelper().getJsonAsList("port"); - assertNotNull("Ports data cannot be null", ports); - assertEquals("Unexpected number of ports", 2, ports.size()); - for (Map portMap : ports) - { - String portName = (String) portMap.get(Port.NAME); - assertNotNull("Port name attribute is not found", portName); - Map 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 attributes = new HashMap(); - 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 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 attributes = new HashMap(); - 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 port = getRestTestHelper().getJsonAsMap("port/" + portName); - Asserts.assertPortAttributes(port); - - Map authProviderAttributes = new HashMap(); - 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) port.get(Port.PROTOCOLS))); - } - - public void testUpdatePortTransportFromTCPToSSLWhenKeystoreIsConfigured() throws Exception - { - String portName = TestBrokerConfiguration.ENTRY_NAME_AMQP_PORT; - Map attributes = new HashMap(); - 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 port = getRestTestHelper().getJsonAsMap("port/" + portName); - - @SuppressWarnings("unchecked") - Collection transports = (Collection) port.get(Port.TRANSPORTS); - assertEquals("Unexpected auth provider", new HashSet(Arrays.asList(Transport.SSL.name())), - new HashSet(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 attributes = new HashMap(); - 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 attributes = new HashMap(); - 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 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 trustStores = (Collection) port.get(Port.TRUST_STORES); - assertEquals("Unexpected auth provider", new HashSet(Arrays.asList(TestBrokerConfiguration.ENTRY_NAME_SSL_TRUSTSTORE)), - new HashSet(trustStores)); - - attributes = new HashMap(); - 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(); - 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 transports = (Collection) port.get(Port.TRANSPORTS); - assertEquals("Unexpected auth provider", new HashSet(Arrays.asList(Transport.TCP.name())), - new HashSet(transports)); - } - - public void testUpdateSettingWantNeedCertificateFailsForNonSSLPort() throws Exception - { - String portName = TestBrokerConfiguration.ENTRY_NAME_AMQP_PORT; - Map attributes = new HashMap(); - 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(); - 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 attributes = new HashMap(); - 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(); - 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 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 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 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 attributes = new HashMap(); - 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-unsubscribe@qpid.apache.org For additional commands, e-mail: commits-help@qpid.apache.org