diff options
| author | Kim van der Riet <kpvdr@apache.org> | 2012-08-03 12:13:32 +0000 |
|---|---|---|
| committer | Kim van der Riet <kpvdr@apache.org> | 2012-08-03 12:13:32 +0000 |
| commit | d43d1912b376322e27fdcda551a73f9ff5487972 (patch) | |
| tree | ce493e10baa95f44be8beb5778ce51783463196d /java/common/src/test | |
| parent | 04877fec0c6346edec67072d7f2d247740cf2af5 (diff) | |
| download | qpid-python-d43d1912b376322e27fdcda551a73f9ff5487972.tar.gz | |
QPID-3858: Updated branch - merged from trunk r.1368650
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/asyncstore@1368910 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/common/src/test')
8 files changed, 220 insertions, 66 deletions
diff --git a/java/common/src/test/java/org/apache/qpid/codec/AMQDecoderTest.java b/java/common/src/test/java/org/apache/qpid/codec/AMQDecoderTest.java index 6540e053b1..cb820b333b 100644 --- a/java/common/src/test/java/org/apache/qpid/codec/AMQDecoderTest.java +++ b/java/common/src/test/java/org/apache/qpid/codec/AMQDecoderTest.java @@ -1,4 +1,3 @@ -package org.apache.qpid.codec; /* * * Licensed to the Apache Software Foundation (ASF) under one @@ -19,6 +18,7 @@ package org.apache.qpid.codec; * under the License. * */ +package org.apache.qpid.codec; import junit.framework.TestCase; diff --git a/java/common/src/test/java/org/apache/qpid/codec/MockAMQVersionAwareProtocolSession.java b/java/common/src/test/java/org/apache/qpid/codec/MockAMQVersionAwareProtocolSession.java index 3a95ca330f..e0244e0581 100644 --- a/java/common/src/test/java/org/apache/qpid/codec/MockAMQVersionAwareProtocolSession.java +++ b/java/common/src/test/java/org/apache/qpid/codec/MockAMQVersionAwareProtocolSession.java @@ -1,4 +1,3 @@ -package org.apache.qpid.codec; /* * * Licensed to the Apache Software Foundation (ASF) under one @@ -19,6 +18,7 @@ package org.apache.qpid.codec; * under the License. * */ +package org.apache.qpid.codec; import org.apache.qpid.AMQException; diff --git a/java/common/src/test/java/org/apache/qpid/ssl/SSLContextFactoryTest.java b/java/common/src/test/java/org/apache/qpid/ssl/SSLContextFactoryTest.java index 69b04c9979..21b8871d9a 100644 --- a/java/common/src/test/java/org/apache/qpid/ssl/SSLContextFactoryTest.java +++ b/java/common/src/test/java/org/apache/qpid/ssl/SSLContextFactoryTest.java @@ -31,13 +31,14 @@ public class SSLContextFactoryTest extends QpidTestCase private static final String CLIENT_KEYSTORE_PATH = TEST_RESOURCES_DIR + "/ssl/java_client_keystore.jks"; private static final String CLIENT_TRUSTSTORE_PATH = TEST_RESOURCES_DIR + "/ssl/java_client_truststore.jks"; private static final String STORE_PASSWORD = "password"; + private static final String STORE_TYPE = "JKS"; private static final String DEFAULT_KEY_MANAGER_ALGORITHM = KeyManagerFactory.getDefaultAlgorithm(); private static final String DEFAULT_TRUST_MANAGER_ALGORITHM = TrustManagerFactory.getDefaultAlgorithm(); private static final String CERT_ALIAS_APP1 = "app1"; public void testBuildServerContext() throws Exception { - SSLContext context = SSLContextFactory.buildServerContext(BROKER_KEYSTORE_PATH, STORE_PASSWORD, DEFAULT_KEY_MANAGER_ALGORITHM); + SSLContext context = SSLContextFactory.buildServerContext(BROKER_KEYSTORE_PATH, STORE_PASSWORD, STORE_TYPE, DEFAULT_KEY_MANAGER_ALGORITHM); assertNotNull("SSLContext should not be null", context); } @@ -45,7 +46,7 @@ public class SSLContextFactoryTest extends QpidTestCase { try { - SSLContextFactory.buildServerContext(BROKER_KEYSTORE_PATH, "sajdklsad", DEFAULT_KEY_MANAGER_ALGORITHM); + SSLContextFactory.buildServerContext(BROKER_KEYSTORE_PATH, "sajdklsad", STORE_TYPE, DEFAULT_KEY_MANAGER_ALGORITHM); fail("Exception was not thrown due to incorrect password"); } catch (IOException e) @@ -58,7 +59,7 @@ public class SSLContextFactoryTest extends QpidTestCase { try { - SSLContextFactory.buildClientContext("/path/to/nothing", STORE_PASSWORD, DEFAULT_TRUST_MANAGER_ALGORITHM, CLIENT_KEYSTORE_PATH, STORE_PASSWORD, DEFAULT_KEY_MANAGER_ALGORITHM, null); + SSLContextFactory.buildClientContext("/path/to/nothing", STORE_PASSWORD, STORE_TYPE, DEFAULT_TRUST_MANAGER_ALGORITHM, CLIENT_KEYSTORE_PATH, STORE_PASSWORD, STORE_TYPE, DEFAULT_KEY_MANAGER_ALGORITHM, null); fail("Exception was not thrown due to incorrect path"); } catch (IOException e) @@ -69,19 +70,19 @@ public class SSLContextFactoryTest extends QpidTestCase public void testBuildClientContextForSSLEncryptionOnly() throws Exception { - SSLContext context = SSLContextFactory.buildClientContext(CLIENT_TRUSTSTORE_PATH, STORE_PASSWORD, DEFAULT_TRUST_MANAGER_ALGORITHM, null, null, null, null); + SSLContext context = SSLContextFactory.buildClientContext(CLIENT_TRUSTSTORE_PATH, STORE_PASSWORD, STORE_TYPE, DEFAULT_TRUST_MANAGER_ALGORITHM, null, null, null, null, null); assertNotNull("SSLContext should not be null", context); } public void testBuildClientContextWithForClientAuth() throws Exception { - SSLContext context = SSLContextFactory.buildClientContext(CLIENT_TRUSTSTORE_PATH, STORE_PASSWORD, DEFAULT_TRUST_MANAGER_ALGORITHM, CLIENT_KEYSTORE_PATH, STORE_PASSWORD, DEFAULT_KEY_MANAGER_ALGORITHM, null); + SSLContext context = SSLContextFactory.buildClientContext(CLIENT_TRUSTSTORE_PATH, STORE_PASSWORD, STORE_TYPE, DEFAULT_TRUST_MANAGER_ALGORITHM, CLIENT_KEYSTORE_PATH, STORE_PASSWORD, STORE_TYPE, DEFAULT_KEY_MANAGER_ALGORITHM, null); assertNotNull("SSLContext should not be null", context); } public void testBuildClientContextWithForClientAuthWithCertAlias() throws Exception { - SSLContext context = SSLContextFactory.buildClientContext(CLIENT_TRUSTSTORE_PATH, STORE_PASSWORD, DEFAULT_TRUST_MANAGER_ALGORITHM, CLIENT_KEYSTORE_PATH, STORE_PASSWORD, DEFAULT_KEY_MANAGER_ALGORITHM, CERT_ALIAS_APP1); + SSLContext context = SSLContextFactory.buildClientContext(CLIENT_TRUSTSTORE_PATH, STORE_PASSWORD, STORE_TYPE, DEFAULT_TRUST_MANAGER_ALGORITHM, CLIENT_KEYSTORE_PATH, STORE_PASSWORD, STORE_TYPE, DEFAULT_KEY_MANAGER_ALGORITHM, CERT_ALIAS_APP1); assertNotNull("SSLContext should not be null", context); } } diff --git a/java/common/src/test/java/org/apache/qpid/test/utils/PortHelper.java b/java/common/src/test/java/org/apache/qpid/test/utils/PortHelper.java new file mode 100644 index 0000000000..d3586c364f --- /dev/null +++ b/java/common/src/test/java/org/apache/qpid/test/utils/PortHelper.java @@ -0,0 +1,127 @@ +/* + * 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.test.utils; + +import java.io.IOException; +import java.net.DatagramSocket; +import java.net.ServerSocket; +import java.util.Set; + +import org.apache.log4j.Logger; + +public class PortHelper +{ + private static final Logger _logger = Logger.getLogger(PortHelper.class); + + private static final int DEFAULT_TIMEOUT_MILLIS = 5000; + + private int timeout = DEFAULT_TIMEOUT_MILLIS; + + public void waitUntilPortsAreFree(Set<Integer> ports) + { + _logger.debug("Checking if ports " + ports + " are free..."); + + for (Integer port : ports) + { + waitUntilPortIsFree(port); + } + + _logger.debug("ports " + ports + " are free"); + } + + private void waitUntilPortIsFree(int port) + { + long startTime = System.currentTimeMillis(); + long deadline = startTime + timeout; + boolean alreadyFailed = false; + + while (true) + { + if (System.currentTimeMillis() > deadline) + { + throw new RuntimeException("Timed out after " + timeout + " ms waiting for port " + port + " to become available"); + } + + if (isPortAvailable(port)) + { + if(alreadyFailed) + { + _logger.debug("port " + port + " is now available"); + } + return; + } + else + { + alreadyFailed = true; + } + + try + { + Thread.sleep(500); + } + catch (InterruptedException e) + { + Thread.currentThread().interrupt(); + } + } + } + + public boolean isPortAvailable(int port) + { + ServerSocket serverSocket = null; + DatagramSocket datagramSocket = null; + + try + { + serverSocket = new ServerSocket(port); + serverSocket.setReuseAddress(true); // ensures that the port is subsequently usable + datagramSocket = new DatagramSocket(port); + datagramSocket.setReuseAddress(true); + return true; + } + catch (IOException e) + { + _logger.debug("port " + port + " is not free"); + return false; + } + finally + { + if (serverSocket != null) + { + try + { + serverSocket.close(); + } + catch (IOException e) + { + throw new RuntimeException("Couldn't close port " + port + " that we created to check its availability", e); + } + } + if(datagramSocket != null) + { + datagramSocket.close(); + } + } + } + + public void setTimeout(int timeout) + { + this.timeout = timeout; + } +} diff --git a/java/common/src/test/java/org/apache/qpid/test/utils/QpidTestCase.java b/java/common/src/test/java/org/apache/qpid/test/utils/QpidTestCase.java index cbf6caf141..ec06400b7d 100644 --- a/java/common/src/test/java/org/apache/qpid/test/utils/QpidTestCase.java +++ b/java/common/src/test/java/org/apache/qpid/test/utils/QpidTestCase.java @@ -29,8 +29,6 @@ import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; -import java.net.DatagramSocket; -import java.net.ServerSocket; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -110,8 +108,8 @@ public class QpidTestCase extends TestCase } } - protected static final String MS_FACTORY_CLASS_NAME_KEY = "messagestorefactory.class.name"; - protected static final String MEMORY_STORE_FACTORY_CLASS_NAME = "org.apache.qpid.server.store.MemoryMessageStoreFactory"; + protected static final String MESSAGE_STORE_CLASS_NAME_KEY = "messagestore.class.name"; + protected static final String MEMORY_STORE_CLASS_NAME = "org.apache.qpid.server.store.MemoryMessageStore"; private static List<String> _exclusionList; @@ -140,12 +138,12 @@ public class QpidTestCase extends TestCase } } - public String getTestProfileMessageStoreFactoryClassName() + public String getTestProfileMessageStoreClassName() { - final String storeFactoryClass = System.getProperty(MS_FACTORY_CLASS_NAME_KEY); - _logger.debug("MS_FACTORY_CLASS_NAME_KEY " + storeFactoryClass); + final String storeClass = System.getProperty(MESSAGE_STORE_CLASS_NAME_KEY); + _logger.debug("MESSAGE_STORE_CLASS_NAME_KEY " + storeClass); - return storeFactoryClass != null ? storeFactoryClass : MEMORY_STORE_FACTORY_CLASS_NAME ; + return storeClass != null ? storeClass : MEMORY_STORE_CLASS_NAME ; } @@ -166,9 +164,10 @@ public class QpidTestCase extends TestCase throw new IllegalArgumentException("Invalid start port: " + fromPort); } + PortHelper portHelper = new PortHelper(); for (int i = fromPort; i <= MAX_PORT_NUMBER; i++) { - if (available(i)) { + if (portHelper.isPortAvailable(i)) { return i; } } @@ -176,54 +175,6 @@ public class QpidTestCase extends TestCase throw new NoSuchElementException("Could not find an available port above " + fromPort); } - /** - * Checks to see if a specific port is available. - * - * @param port the port to check for availability - */ - private boolean available(int port) - { - if ((port < MIN_PORT_NUMBER) || (port > MAX_PORT_NUMBER)) - { - throw new IllegalArgumentException("Invalid start port: " + port); - } - - ServerSocket ss = null; - DatagramSocket ds = null; - try - { - ss = new ServerSocket(port); - ss.setReuseAddress(true); - ds = new DatagramSocket(port); - ds.setReuseAddress(true); - return true; - } - catch (IOException e) - { - } - finally - { - if (ds != null) - { - ds.close(); - } - - if (ss != null) - { - try - { - ss.close(); - } - catch (IOException e) - { - /* should not be thrown */ - } - } - } - - return false; - } - public int findFreePort() { return getNextAvailable(10000); diff --git a/java/common/src/test/java/org/apache/qpid/test/utils/TestFileUtils.java b/java/common/src/test/java/org/apache/qpid/test/utils/TestFileUtils.java new file mode 100644 index 0000000000..056d11faaa --- /dev/null +++ b/java/common/src/test/java/org/apache/qpid/test/utils/TestFileUtils.java @@ -0,0 +1,63 @@ +/* + * + * 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.test.utils; + +import java.io.File; + +import org.apache.qpid.util.FileUtils; + +/** + * Utility methods intended to be used in unit tests that manipulate files + */ +public class TestFileUtils +{ + private static final String SYSTEM_TMP_DIR = System.getProperty("java.io.tmpdir"); + + /** + * Create and return a temporary directory that will be deleted on exit. + */ + public static File createTestDirectory() + { + String dirNameStem = TestFileUtils.class.getSimpleName() + "-testDir"; + return createTestDirectory(dirNameStem, true); + } + + /** + * Creates an empty directory with a name like /tmp/dirNameStem-12345678 + */ + public static File createTestDirectory(String dirNameStem, boolean deleteOnExit) + { + File testDir = new File(SYSTEM_TMP_DIR, dirNameStem + "-" + System.currentTimeMillis()); + if (testDir.exists()) + { + FileUtils.delete(testDir, true); + } + + testDir.mkdirs(); + + if (deleteOnExit) + { + testDir.deleteOnExit(); + } + + return testDir; + } +} diff --git a/java/common/src/test/java/org/apache/qpid/transport/TestNetworkConnection.java b/java/common/src/test/java/org/apache/qpid/transport/TestNetworkConnection.java index 548e8dab12..893f66c5ff 100644 --- a/java/common/src/test/java/org/apache/qpid/transport/TestNetworkConnection.java +++ b/java/common/src/test/java/org/apache/qpid/transport/TestNetworkConnection.java @@ -20,6 +20,7 @@ */ package org.apache.qpid.transport; +import java.security.Principal; import org.apache.qpid.protocol.ProtocolEngineFactory; import org.apache.qpid.ssl.SSLContextFactory; import org.apache.qpid.transport.network.NetworkConnection; @@ -71,6 +72,17 @@ public class TestNetworkConnection implements NetworkConnection } + @Override + public void setPeerPrincipal(Principal principal) + { + } + + @Override + public Principal getPeerPrincipal() + { + return null; + } + public void setMaxWriteIdle(int idleTime) { diff --git a/java/common/src/test/java/org/apache/qpid/util/SerialTest.java b/java/common/src/test/java/org/apache/qpid/util/SerialTest.java index ef8e7de61c..c3fcf73b38 100644 --- a/java/common/src/test/java/org/apache/qpid/util/SerialTest.java +++ b/java/common/src/test/java/org/apache/qpid/util/SerialTest.java @@ -1,4 +1,3 @@ -package org.apache.qpid.util; /* * * Licensed to the Apache Software Foundation (ASF) under one @@ -19,6 +18,7 @@ package org.apache.qpid.util; * under the License. * */ +package org.apache.qpid.util; import junit.framework.TestCase; |
