You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2018/02/19 07:53:20 UTC
[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 <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-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org