summaryrefslogtreecommitdiff
path: root/java/common/src/test
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2011-09-09 17:47:22 +0000
committerRobert Godfrey <rgodfrey@apache.org>2011-09-09 17:47:22 +0000
commit5270591c7831e559925e720c6bfc0c78c514b95a (patch)
tree8ce7aabb2f5a4a87c4c53b3e8f810c62392eba11 /java/common/src/test
parent282e16aab532d842dffad3935bfd1a952bc584be (diff)
downloadqpid-python-5270591c7831e559925e720c6bfc0c78c514b95a.tar.gz
QPID-2627 : Remove dependency on MINA
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1167311 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/common/src/test')
-rw-r--r--java/common/src/test/java/org/apache/qpid/codec/AMQDecoderTest.java32
-rw-r--r--java/common/src/test/java/org/apache/qpid/framing/BasicContentHeaderPropertiesTest.java11
-rw-r--r--java/common/src/test/java/org/apache/qpid/framing/PropertyFieldTableTest.java30
-rw-r--r--java/common/src/test/java/org/apache/qpid/test/utils/QpidTestCase.java87
-rw-r--r--java/common/src/test/java/org/apache/qpid/transport/ConnectionTest.java4
-rw-r--r--java/common/src/test/java/org/apache/qpid/transport/network/io/IoTransport.java15
6 files changed, 125 insertions, 54 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 62e25e7d79..272eb75800 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
@@ -21,6 +21,9 @@ package org.apache.qpid.codec;
*/
+import java.io.ByteArrayOutputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.ArrayList;
@@ -46,9 +49,16 @@ public class AMQDecoderTest extends TestCase
}
- public void testSingleFrameDecode() throws AMQProtocolVersionException, AMQFrameDecodingException
+ private ByteBuffer getHeartbeatBodyBuffer() throws IOException
{
- ByteBuffer msg = HeartbeatBody.FRAME.toNioByteBuffer();
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ HeartbeatBody.FRAME.writePayload(new DataOutputStream(baos));
+ return ByteBuffer.wrap(baos.toByteArray());
+ }
+
+ public void testSingleFrameDecode() throws AMQProtocolVersionException, AMQFrameDecodingException, IOException
+ {
+ ByteBuffer msg = getHeartbeatBodyBuffer();
ArrayList<AMQDataBlock> frames = _decoder.decodeBuffer(msg);
if (frames.get(0) instanceof AMQFrame)
{
@@ -60,9 +70,9 @@ public class AMQDecoderTest extends TestCase
}
}
- public void testPartialFrameDecode() throws AMQProtocolVersionException, AMQFrameDecodingException
+ public void testPartialFrameDecode() throws AMQProtocolVersionException, AMQFrameDecodingException, IOException
{
- ByteBuffer msg = HeartbeatBody.FRAME.toNioByteBuffer();
+ ByteBuffer msg = getHeartbeatBodyBuffer();
ByteBuffer msgA = msg.slice();
int msgbPos = msg.remaining() / 2;
int msgaLimit = msg.remaining() - msgbPos;
@@ -83,10 +93,10 @@ public class AMQDecoderTest extends TestCase
}
}
- public void testMultipleFrameDecode() throws AMQProtocolVersionException, AMQFrameDecodingException
+ public void testMultipleFrameDecode() throws AMQProtocolVersionException, AMQFrameDecodingException, IOException
{
- ByteBuffer msgA = HeartbeatBody.FRAME.toNioByteBuffer();
- ByteBuffer msgB = HeartbeatBody.FRAME.toNioByteBuffer();
+ ByteBuffer msgA = getHeartbeatBodyBuffer();
+ ByteBuffer msgB = getHeartbeatBodyBuffer();
ByteBuffer msg = ByteBuffer.allocate(msgA.remaining() + msgB.remaining());
msg.put(msgA);
msg.put(msgB);
@@ -106,11 +116,11 @@ public class AMQDecoderTest extends TestCase
}
}
- public void testMultiplePartialFrameDecode() throws AMQProtocolVersionException, AMQFrameDecodingException
+ public void testMultiplePartialFrameDecode() throws AMQProtocolVersionException, AMQFrameDecodingException, IOException
{
- ByteBuffer msgA = HeartbeatBody.FRAME.toNioByteBuffer();
- ByteBuffer msgB = HeartbeatBody.FRAME.toNioByteBuffer();
- ByteBuffer msgC = HeartbeatBody.FRAME.toNioByteBuffer();
+ ByteBuffer msgA = getHeartbeatBodyBuffer();
+ ByteBuffer msgB = getHeartbeatBodyBuffer();
+ ByteBuffer msgC = getHeartbeatBodyBuffer();
ByteBuffer sliceA = ByteBuffer.allocate(msgA.remaining() + msgB.remaining() / 2);
sliceA.put(msgA);
diff --git a/java/common/src/test/java/org/apache/qpid/framing/BasicContentHeaderPropertiesTest.java b/java/common/src/test/java/org/apache/qpid/framing/BasicContentHeaderPropertiesTest.java
index 4fd1f60d69..5e7783f492 100644
--- a/java/common/src/test/java/org/apache/qpid/framing/BasicContentHeaderPropertiesTest.java
+++ b/java/common/src/test/java/org/apache/qpid/framing/BasicContentHeaderPropertiesTest.java
@@ -20,10 +20,10 @@
*/
package org.apache.qpid.framing;
-import org.apache.mina.common.ByteBuffer;
-
import junit.framework.TestCase;
+import java.io.*;
+
public class BasicContentHeaderPropertiesTest extends TestCase
{
@@ -76,15 +76,14 @@ public class BasicContentHeaderPropertiesTest extends TestCase
assertEquals(99, _testProperties.getPropertyFlags());
}
- public void testWritePropertyListPayload()
+ public void testWritePropertyListPayload() throws IOException
{
- ByteBuffer buf = ByteBuffer.allocate(300);
- _testProperties.writePropertyListPayload(buf);
+ _testProperties.writePropertyListPayload(new DataOutputStream(new ByteArrayOutputStream(300)));
}
public void testPopulatePropertiesFromBuffer() throws Exception
{
- ByteBuffer buf = ByteBuffer.allocate(300);
+ DataInputStream buf = new DataInputStream(new ByteArrayInputStream(new byte[300]));
_testProperties.populatePropertiesFromBuffer(buf, 99, 99);
}
diff --git a/java/common/src/test/java/org/apache/qpid/framing/PropertyFieldTableTest.java b/java/common/src/test/java/org/apache/qpid/framing/PropertyFieldTableTest.java
index d4691ba097..bb4c9c3884 100644
--- a/java/common/src/test/java/org/apache/qpid/framing/PropertyFieldTableTest.java
+++ b/java/common/src/test/java/org/apache/qpid/framing/PropertyFieldTableTest.java
@@ -23,14 +23,14 @@ package org.apache.qpid.framing;
import junit.framework.Assert;
import junit.framework.TestCase;
-import org.apache.mina.common.ByteBuffer;
-
import org.apache.qpid.AMQInvalidArgumentException;
import org.apache.qpid.AMQPInvalidClassException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.*;
+
public class PropertyFieldTableTest extends TestCase
{
private static final Logger _logger = LoggerFactory.getLogger(PropertyFieldTableTest.class);
@@ -441,7 +441,7 @@ public class PropertyFieldTableTest extends TestCase
}
/** Check that a nested field table parameter correctly encodes and decodes to a byte buffer. */
- public void testNestedFieldTable()
+ public void testNestedFieldTable() throws IOException
{
byte[] testBytes = new byte[] { 0, 1, 2, 3, 4, 5 };
@@ -465,14 +465,16 @@ public class PropertyFieldTableTest extends TestCase
outerTable.setFieldTable("innerTable", innerTable);
// Write the outer table into the buffer.
- final ByteBuffer buffer = ByteBuffer.allocate((int) outerTable.getEncodedSize() + 4);
- outerTable.writeToBuffer(buffer);
- buffer.flip();
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
+ outerTable.writeToBuffer(new DataOutputStream(baos));
+
+ byte[] data = baos.toByteArray();
// Extract the table back from the buffer again.
try
{
- FieldTable extractedOuterTable = EncodingUtils.readFieldTable(buffer);
+ FieldTable extractedOuterTable = EncodingUtils.readFieldTable(new DataInputStream(new ByteArrayInputStream(data)));
FieldTable extractedTable = extractedOuterTable.getFieldTable("innerTable");
@@ -567,7 +569,7 @@ public class PropertyFieldTableTest extends TestCase
Assert.assertEquals("Hello", table.getObject("object-string"));
}
- public void testwriteBuffer()
+ public void testwriteBuffer() throws IOException
{
byte[] bytes = { 99, 98, 97, 96, 95 };
@@ -585,15 +587,17 @@ public class PropertyFieldTableTest extends TestCase
table.setString("string", "hello");
table.setString("null-string", null);
- final ByteBuffer buffer = ByteBuffer.allocate((int) table.getEncodedSize() + 4); // FIXME XXX: Is cast a problem?
- table.writeToBuffer(buffer);
+ ByteArrayOutputStream baos = new ByteArrayOutputStream((int) table.getEncodedSize() + 4);
+ table.writeToBuffer(new DataOutputStream(baos));
+
+ ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
+ DataInputStream dis = new DataInputStream(bais);
- buffer.flip();
- long length = buffer.getUnsignedInt();
+ long length = dis.readInt() & 0xFFFFFFFFL;
- FieldTable table2 = new FieldTable(buffer, length);
+ FieldTable table2 = new FieldTable(dis, length);
Assert.assertEquals((Boolean) true, table2.getBoolean("bool"));
Assert.assertEquals((Byte) Byte.MAX_VALUE, table2.getByte("byte"));
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 ac3380e0c0..bde8bc68ad 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
@@ -24,17 +24,16 @@ import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.net.DatagramSocket;
+import java.net.ServerSocket;
+import java.util.*;
import junit.framework.TestCase;
import junit.framework.TestResult;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
-import org.apache.mina.util.AvailablePortFinder;
+
public class QpidTestCase extends TestCase
{
@@ -140,9 +139,85 @@ public class QpidTestCase extends TestCase
return storeClass != null ? storeClass : MEMORY_STORE_CLASS_NAME ;
}
+
+ public static final int MIN_PORT_NUMBER = 1;
+ public static final int MAX_PORT_NUMBER = 49151;
+
+
+ /**
+ * Gets the next available port starting at a port.
+ *
+ * @param fromPort the port to scan for availability
+ * @throws NoSuchElementException if there are no ports available
+ */
+ protected int getNextAvailable(int fromPort)
+ {
+ if ((fromPort < MIN_PORT_NUMBER) || (fromPort > MAX_PORT_NUMBER))
+ {
+ throw new IllegalArgumentException("Invalid start port: " + fromPort);
+ }
+
+ for (int i = fromPort; i <= MAX_PORT_NUMBER; i++)
+ {
+ if (available(i)) {
+ return i;
+ }
+ }
+
+ 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 AvailablePortFinder.getNextAvailable(10000);
+ return getNextAvailable(10000);
}
/**
diff --git a/java/common/src/test/java/org/apache/qpid/transport/ConnectionTest.java b/java/common/src/test/java/org/apache/qpid/transport/ConnectionTest.java
index 375a326654..3cd7dea2b6 100644
--- a/java/common/src/test/java/org/apache/qpid/transport/ConnectionTest.java
+++ b/java/common/src/test/java/org/apache/qpid/transport/ConnectionTest.java
@@ -20,8 +20,6 @@
*/
package org.apache.qpid.transport;
-import org.apache.mina.util.AvailablePortFinder;
-
import org.apache.qpid.test.utils.QpidTestCase;
import org.apache.qpid.transport.network.ConnectionBinding;
import org.apache.qpid.transport.network.io.IoAcceptor;
@@ -58,7 +56,7 @@ public class ConnectionTest extends QpidTestCase implements SessionListener
{
super.setUp();
- port = AvailablePortFinder.getNextAvailable(12000);
+ port = findFreePort();
}
protected void tearDown() throws Exception
diff --git a/java/common/src/test/java/org/apache/qpid/transport/network/io/IoTransport.java b/java/common/src/test/java/org/apache/qpid/transport/network/io/IoTransport.java
index 0de1308281..215c6d9931 100644
--- a/java/common/src/test/java/org/apache/qpid/transport/network/io/IoTransport.java
+++ b/java/common/src/test/java/org/apache/qpid/transport/network/io/IoTransport.java
@@ -22,16 +22,8 @@ package org.apache.qpid.transport.network.io;
import java.net.Socket;
import java.nio.ByteBuffer;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.SSLEngine;
-
-import org.apache.qpid.ssl.SSLContextFactory;
import org.apache.qpid.transport.Binding;
import org.apache.qpid.transport.Sender;
-import org.apache.qpid.transport.TransportException;
-import org.apache.qpid.transport.network.security.SSLStatus;
-import org.apache.qpid.transport.network.security.ssl.SSLReceiver;
-import org.apache.qpid.transport.network.security.ssl.SSLSender;
import org.apache.qpid.transport.util.Logger;
/**
@@ -46,13 +38,6 @@ import org.apache.qpid.transport.util.Logger;
public final class IoTransport<E>
{
- static
- {
- org.apache.mina.common.ByteBuffer.setAllocator
- (new org.apache.mina.common.SimpleByteBufferAllocator());
- org.apache.mina.common.ByteBuffer.setUseDirectBuffers
- (Boolean.getBoolean("amqj.enableDirectBuffers"));
- }
private static final Logger log = Logger.get(IoTransport.class);