summaryrefslogtreecommitdiff
path: root/java/broker-plugins/experimental/info/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'java/broker-plugins/experimental/info/src/test')
-rw-r--r--java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/systest/InfoPluginTest.java185
-rw-r--r--java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/HttpPosterTest.java4
-rw-r--r--java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/InfoServiceImplTest.java8
-rw-r--r--java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/InfoTest.java37
-rw-r--r--java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/IniFileReaderTest.java83
-rw-r--r--java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/SoapClientTest.java110
-rw-r--r--java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/SystemInfoTest.java23
-rw-r--r--java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/XMLWriterTest.java69
8 files changed, 326 insertions, 193 deletions
diff --git a/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/systest/InfoPluginTest.java b/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/systest/InfoPluginTest.java
index 642327a198..faeaf716e3 100644
--- a/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/systest/InfoPluginTest.java
+++ b/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/systest/InfoPluginTest.java
@@ -1,5 +1,7 @@
package org.apache.qpid.info.systest;
+import org.apache.qpid.test.utils.QpidBrokerTestCase;
+
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
@@ -13,37 +15,35 @@ import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
-import org.apache.qpid.test.utils.QpidBrokerTestCase;
-
public class InfoPluginTest extends QpidBrokerTestCase
{
private String QPID_HOME = null;
- private ServerSocket server = null;
+ private ServerSocket _server = null;
- private final int port = 9000;
+ private int _port;
private static final String CR = System.getProperty("line.separator");
private static final String FS = File.separator;
- private final String cfgRelPath = "etc" + FS + "qpidinfo.properties";
+ private final String _cfgRelPath = "etc" + FS + "qpidinfo.ini";
- private File tmpCfgFile;
+ private File _tmpCfgFile;
- private final String soapEnvelopeHead = "<?xml version=\"1.0\"?><soap:Envelope xmlns:soap=\"http://www.w3.org/2001/12/soap-envelope\" soap:encodingStyle=\"http://www.w3.org/2001/12/soap-encoding\">";
+ private final String _soapEnvelopeHead = "<?xml version=\"1.0\"?><soap:Envelope xmlns:soap=\"http://www.w3.org/2001/12/soap-envelope\" soap:encodingStyle=\"http://www.w3.org/2001/12/soap-encoding\">";
- private final String soapEnvelopeTail = "</soap:Envelope>";
+ private final String _soapEnvelopeTail = "</soap:Envelope>";
- private String soapMessage1 = "@ACTION" + "-" + "@VERSION";
+ private String _soapMessage1 = "@ACTION" + "-" + "@VERSION";
- private String soapMessage2 = "@VERSION" + "-" + "@ACTION";
+ private String _soapMessage2 = "@VERSION" + "-" + "@ACTION";
- private CountDownLatch latch = new CountDownLatch(2);
+ private CountDownLatch _latch = new CountDownLatch(2);
- final List<List<String>> recv = new ArrayList<List<String>>();
+ final List<List<String>> _recv = new ArrayList<List<String>>();
- Thread socketAcceptor;
+ Thread _socketAcceptor;
public void setUp() throws Exception
{
@@ -51,19 +51,27 @@ public class InfoPluginTest extends QpidBrokerTestCase
if (QPID_HOME != null)
{
System.out.println("QPID_HOME=" + QPID_HOME);
- } else
+ }
+ else
{
fail("QPID_HOME not set");
}
+
+ startSoapServer();
+ // Must start the server first to identify a free port.
createConfigFile();
- startSoapServer(port);
}
public void tearDown() throws Exception
{
+ System.out.println("*** Stopping socket server...");
+ _socketAcceptor.join(2000);
+
System.out.println("*** Deleting the config file...");
- if (tmpCfgFile.isFile())
- tmpCfgFile.delete();
+ if (_tmpCfgFile.isFile())
+ {
+ _tmpCfgFile.delete();
+ }
super.tearDown();
}
@@ -71,18 +79,21 @@ public class InfoPluginTest extends QpidBrokerTestCase
{
try
{
- tmpCfgFile = new File(QPID_HOME + FS + cfgRelPath);
- if (tmpCfgFile.isFile())
- tmpCfgFile.delete();
- tmpCfgFile.createNewFile();
- assertTrue(tmpCfgFile.isFile());
- FileWriter fwriter = new FileWriter(tmpCfgFile);
+ _tmpCfgFile = new File(QPID_HOME + FS + _cfgRelPath);
+ _tmpCfgFile.deleteOnExit();
+ if (_tmpCfgFile.isFile())
+ {
+ _tmpCfgFile.delete();
+ }
+ assertTrue("Unable to create file.", _tmpCfgFile.createNewFile());
+ assertTrue(_tmpCfgFile.isFile());
+ FileWriter fwriter = new FileWriter(_tmpCfgFile);
BufferedWriter writer = new BufferedWriter(fwriter);
writer.write("protocol=soap");
writer.write(CR);
writer.write("soap.hostname=localhost");
writer.write(CR);
- writer.write("soap.port=" + port);
+ writer.write("soap.port=" + _port);
writer.write(CR);
writer.write(CR);
writer.write("[MSG1]");
@@ -91,8 +102,8 @@ public class InfoPluginTest extends QpidBrokerTestCase
writer.write(CR);
writer.write("soap.action=submitinfo1");
writer.write(CR);
- writer.write("soap.envelope=" + soapEnvelopeHead + soapMessage1
- + soapEnvelopeTail);
+ writer.write("soap.envelope=" + _soapEnvelopeHead + _soapMessage1
+ + _soapEnvelopeTail);
writer.write(CR);
writer.write(CR);
writer.write("[MSG2]");
@@ -101,34 +112,36 @@ public class InfoPluginTest extends QpidBrokerTestCase
writer.write(CR);
writer.write("soap.action=submitinfo2");
writer.write(CR);
- writer.write("soap.envelope=" + soapEnvelopeHead + soapMessage2
- + soapEnvelopeTail);
+ writer.write("soap.envelope=" + _soapEnvelopeHead + _soapMessage2
+ + _soapEnvelopeTail);
writer.write(CR);
writer.write(CR);
writer.close();
- assertTrue("Config file size is zero", tmpCfgFile.length() > 0);
- } catch (IOException e)
+ assertTrue("Config file size is zero", _tmpCfgFile.length() > 0);
+ }
+ catch (IOException e)
{
fail("Unable to create the qpidinfo.properties due to: "
- + e.getMessage());
+ + e.getMessage());
}
}
- private void startSoapServer(int port) throws Exception
+ private void startSoapServer() throws Exception
{
- assertTrue("Port a negative number", port > 0);
- assertTrue("Port higher than 65535", port < 65535);
-
try
{
- server = new ServerSocket(port);
- assertNotNull("SocketServer is null", server);
- } catch (Exception ex)
+ _server = new ServerSocket(0);
+ _port = _server.getLocalPort();
+ assertTrue("Server not yet bound.", _port != -1);
+
+ assertNotNull("SocketServer is null", _server);
+ }
+ catch (Exception ex)
{
fail("Unable to start the socket server due to: " + ex.getMessage());
}
- socketAcceptor = new Thread()
+ _socketAcceptor = new Thread()
{
public void run()
{
@@ -136,26 +149,27 @@ public class InfoPluginTest extends QpidBrokerTestCase
{
try
{
- Socket socket = server.accept();
+ Socket socket = _server.accept();
new ConnectionHandler(socket);
- } catch (IOException e)
+ }
+ catch (IOException e)
{
fail("Error opening the socket in accept mode");
}
}
}
};
- socketAcceptor.start();
+ _socketAcceptor.start();
System.out.println("*** Socket server started...");
}
class ConnectionHandler implements Runnable
{
- private Socket socket;
+ private Socket _socket;
public ConnectionHandler(Socket socket)
{
- this.socket = socket;
+ _socket = socket;
Thread t = new Thread(this);
t.start();
}
@@ -168,7 +182,7 @@ public class InfoPluginTest extends QpidBrokerTestCase
try
{
BufferedReader br = new BufferedReader(new InputStreamReader(
- socket.getInputStream()));
+ _socket.getInputStream()));
assertNotNull(br);
while ((line = br.readLine()) != null)
{
@@ -177,12 +191,13 @@ public class InfoPluginTest extends QpidBrokerTestCase
br.close();
System.out.println("*** Received buffer: " + buf);
System.out.println("*** Latch countdown");
- latch.countDown();
- synchronized (recv)
+ _latch.countDown();
+ synchronized (_recv)
{
- recv.add(buf);
+ _recv.add(buf);
}
- } catch (Exception ex)
+ }
+ catch (Exception ex)
{
ex.printStackTrace();
fail("Exception while reading from the socket");
@@ -194,56 +209,48 @@ public class InfoPluginTest extends QpidBrokerTestCase
public void testInfoPlugin() throws Exception
{
+ //Start the broker
super.setUp();
- if (!latch.await(10, TimeUnit.SECONDS))
+ if (!_latch.await(10, TimeUnit.SECONDS))
{
fail("Timeout awaiting for the latch, upon startup");
}
- assertTrue("Received less than 2 messages", recv.size() > 1);
- //Message 1
- assertTrue("Message has 0 size", recv.get(0).size()>0);
- assertEquals("Message does not have 8 fields", recv.get(0).size(), 8);
- assertTrue("Message does not contain Host: localhost:9000",recv.get(0).contains("Host: localhost:9000"));
- assertTrue("Message does not contain: User-Agent: Axis2 ", recv.get(0).contains("User-Agent: Axis2"));
- assertTrue("Message does not contain: SOAPAction: \"urn:submitinfo\"", recv.get(0).get(4).startsWith("SOAPAction: \"urn:submitinfo"));
- assertTrue("Message does not contain STARTUP in the soap envelope", recv.get(0).get(7).contains("STARTUP"));
-
- //Message 2
- assertTrue("Message has 0 size", recv.get(1).size()>0);
- assertEquals("Message does not have 8 fields", recv.get(1).size(), 8);
- assertTrue("Message does not contain Host: localhost:9000",recv.get(1).contains("Host: localhost:9000"));
- assertTrue("Message does not contain: User-Agent: Axis2 ", recv.get(1).contains("User-Agent: Axis2"));
- assertTrue("Message does not contain: SOAPAction: \"urn:submitinfo\"", recv.get(1).get(4).startsWith("SOAPAction: \"urn:submitinfo"));
- assertTrue("Message does not contain STARTUP in the soap envelope", recv.get(0).get(7).contains("STARTUP"));
-
- recv.clear();
- latch = new CountDownLatch(2);
-
+ validateResponses("STARTUP");
+
+ _recv.clear();
+ _latch = new CountDownLatch(2);
+
stopBroker();
-
- if (!latch.await(10, TimeUnit.SECONDS))
+
+ if (!_latch.await(10, TimeUnit.SECONDS))
{
fail("Timeout awaiting for the latch, upon shutdown");
}
-
-
- assertTrue("Received less than 2 messages", recv.size() > 1);
-
- // Message 1
- assertTrue("Message does not contain Host: localhost:9000",recv.get(0).contains("Host: localhost:9000"));
- assertTrue("Message does not contain: User-Agent: Axis2 ", recv.get(0).contains("User-Agent: Axis2"));
- assertTrue("Message does not contain: SOAPAction: \"urn:submitinfo\"", recv.get(0).get(4).startsWith("SOAPAction: \"urn:submitinfo"));
- assertTrue("Message does not contain SHUTDOWN in the soap envelope", recv.get(0).get(7).contains("SHUTDOWN"));
-
+
+ validateResponses("SHUTDOWN");
+
+ }
+
+ /**
+ * Check the responses from the server to ensure they contain the required messages.
+ * @param action String to match for the SHUTDOWN or STARTUP action.
+ */
+ private void validateResponses(String action)
+ {
+ assertTrue("Received less than 2 messages", _recv.size() > 1);
+
+ // Message 1
+ assertTrue("Message does not contain Host: localhost:" + _port + "\n" + _recv.get(0), _recv.get(0).contains("Host: localhost:" + _port));
+ assertTrue("Message does not contain: User-Agent: Axis2 " + "\n" + _recv.get(0), _recv.get(0).contains("User-Agent: Axis2"));
+ assertTrue("Message does not contain: SOAPAction: \"urn:submitinfo\"" + "\n" + _recv.get(0).get(4), _recv.get(0).get(4).startsWith("SOAPAction: \"urn:submitinfo"));
+ assertTrue("Message does not contain '" + action + "' in the soap envelope" + "\n" + _recv.get(0).get(7), _recv.get(0).get(7).contains(action));
+
// Message 2
- assertTrue("Message does not contain Host: localhost:9000",recv.get(1).contains("Host: localhost:9000"));
- assertTrue("Message does not contain: User-Agent: Axis2 ", recv.get(1).contains("User-Agent: Axis2"));
- assertTrue("Message does not contain: SOAPAction: \"urn:submitinfo\"", recv.get(1).get(4).startsWith("SOAPAction: \"urn:submitinfo"));
- assertTrue("Message does not contain SHUTDOWN in the soap envelope", recv.get(0).get(7).contains("SHUTDOWN"));
-
- System.out.println("*** Stopping socket server...");
- socketAcceptor.join(2000);
+ assertTrue("Message does not contain Host: localhost:" + _port + "\n" + _recv.get(1), _recv.get(1).contains("Host: localhost:" + _port));
+ assertTrue("Message does not contain: User-Agent: Axis2 " + "\n" + _recv.get(1), _recv.get(1).contains("User-Agent: Axis2"));
+ assertTrue("Message does not contain: SOAPAction: \"urn:submitinfo\"" + "\n" + _recv.get(1).get(4), _recv.get(1).get(4).startsWith("SOAPAction: \"urn:submitinfo"));
+ assertTrue("Message does not contain '" + action + "' in the soap envelope" + "\n" + _recv.get(1).get(7), _recv.get(1).get(7).contains(action));
}
}
diff --git a/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/HttpPosterTest.java b/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/HttpPosterTest.java
index 6be421dd7d..4f76fea8ef 100644
--- a/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/HttpPosterTest.java
+++ b/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/HttpPosterTest.java
@@ -92,14 +92,14 @@ public class HttpPosterTest extends TestCase
HttpPoster hp = getHttpPoster(baseURL + contextPath);
assertNotNull(hp);
hp.run();
- List<String> response = hp.getResponse();
+ List<String> response = hp.get_response();
assertTrue(response.size() > 0);
assertEquals("OK <br>", response.get(0).toString());
// Failure Test
hp = getHttpPoster("http://localhost/nonexistent");
hp.run();
- response = hp.getResponse();
+ response = hp.get_response();
assertTrue(response.size() == 0);
}
diff --git a/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/InfoServiceImplTest.java b/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/InfoServiceImplTest.java
index 2de3f4841b..9f359582a5 100644
--- a/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/InfoServiceImplTest.java
+++ b/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/InfoServiceImplTest.java
@@ -37,14 +37,14 @@ import junit.framework.TestCase;
public class InfoServiceImplTest extends TestCase
{
- InfoServiceImpl isi = null;
+ InfoServiceImpl _isi = null;
@SuppressWarnings("unchecked")
public void testInvoke()
{
- isi = new InfoServiceImpl();
- assertNotNull(isi);
- Info<? extends Map<String, String>> info = (Info<? extends Map<String, String>>) isi
+ _isi = new InfoServiceImpl();
+ assertNotNull(_isi);
+ Info<? extends Map<String, String>> info = (Info<? extends Map<String, String>>) _isi
.invoke("START");
assertNotNull(info);
Properties props = info.toProps();
diff --git a/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/InfoTest.java b/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/InfoTest.java
index da3d844491..bb4965ef1e 100644
--- a/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/InfoTest.java
+++ b/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/InfoTest.java
@@ -32,23 +32,16 @@ import org.apache.qpid.info.Info;
*/
public class InfoTest extends TestCase
{
- private HashMap<String, String> infoPayLoad = null;
+ private HashMap<String, String> _infoPayLoad = null;
- private Info<HashMap<String, String>> info = null;
+ private Info<HashMap<String, String>> _info = null;
protected void setUp() throws Exception
{
super.setUp();
- infoPayLoad = new HashMap<String, String>();
- infoPayLoad.put("test", "Test");
- info = new Info<HashMap<String, String>>(infoPayLoad);
- }
-
- protected void tearDown() throws Exception
- {
- super.tearDown();
- info = null;
- infoPayLoad = null;
+ _infoPayLoad = new HashMap<String, String>();
+ _infoPayLoad.put("test", "Test");
+ _info = new Info<HashMap<String, String>>(_infoPayLoad);
}
/*
@@ -56,9 +49,9 @@ public class InfoTest extends TestCase
*/
public void testToString()
{
- assertNotNull("toString() returned null", info.toString());
+ assertNotNull("toString() returned null", _info.toString());
assertEquals("toString() did not return the proper string",
- "test=Test\n", info.toString());
+ "test=Test\n", _info.toString());
}
/*
@@ -68,8 +61,8 @@ public class InfoTest extends TestCase
{
Properties props = new Properties();
props.put("test", "Test");
- assertNotNull("toProperties() returned null", info.toProps());
- assertEquals("toProperties not returned the proper object", props, info
+ assertNotNull("toProperties() returned null", _info.toProps());
+ assertEquals("toProperties not returned the proper object", props, _info
.toProps());
}
@@ -79,8 +72,8 @@ public class InfoTest extends TestCase
public void testToStringBuffer()
{
StringBuffer sb = new StringBuffer("test=Test\n");
- assertNotNull(info.toStringBuffer());
- assertEquals(sb.toString(), info.toStringBuffer().toString());
+ assertNotNull(_info.toStringBuffer());
+ assertEquals(sb.toString(), _info.toStringBuffer().toString());
}
/*
@@ -88,15 +81,15 @@ public class InfoTest extends TestCase
*/
public void testToXML()
{
- String INDEND = " ";
+ String INDENT = " ";
StringBuffer sb = new StringBuffer();
sb.append("<?xml version=\"1.0\"?>\n");
sb.append("<qpidinfo>\n");
sb.append("<test>\n");
- sb.append(INDEND + "Test\n");
+ sb.append(INDENT + "Test\n");
sb.append("</test>\n");
sb.append("</qpidinfo>\n");
- assertEquals("toString() does not return the proper string", info
+ assertEquals("toString() does not return the proper string", _info
.toXML().toString(), sb.toString());
}
@@ -105,7 +98,7 @@ public class InfoTest extends TestCase
*/
public void testToMap()
{
- HashMap<String, String> thm = info.toMap();
+ HashMap<String, String> thm = _info.toMap();
assertFalse("toMap() returned empty map", thm.isEmpty());
assertEquals("testToMap did not returned 1", 1, thm.size());
assertTrue("toMap() returned a map not containing expected key: test",
diff --git a/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/IniFileReaderTest.java b/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/IniFileReaderTest.java
index 626102c68d..77ecaa2176 100644
--- a/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/IniFileReaderTest.java
+++ b/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/IniFileReaderTest.java
@@ -21,6 +21,9 @@
package org.apache.qpid.info.test;
+import junit.framework.TestCase;
+import org.apache.qpid.info.util.IniFileReader;
+
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
@@ -28,10 +31,10 @@ import java.io.IOException;
import java.util.Map;
import java.util.Properties;
-import org.apache.qpid.info.util.IniFileReader;
-
-import junit.framework.TestCase;
-
+/**
+ * Test the Loading of the ini file reader by first writing
+ * out a correct ini file.
+ */
public class IniFileReaderTest extends TestCase
{
@@ -48,8 +51,8 @@ public class IniFileReaderTest extends TestCase
writer.write("globalprop1=globalval1\n");
writer.write("globalprop2=globalval2\n");
writer.write("\n");
- writer.write("[Section1]\n");
- writer.write("key1=val1\n");
+ writer.write("[Section1] # Comment on Section\n");
+ writer.write("key1=val1 # Comment on Value\n");
writer.write("key2=val2\n");
writer.write("\n");
writer.write("#Section2 Comment\n");
@@ -63,29 +66,71 @@ public class IniFileReaderTest extends TestCase
writer.write("key7=val7\n");
writer.write("\n");
writer.close();
- } catch (IOException e)
+ }
+ catch (IOException e)
{
e.printStackTrace();
fail("Unable to create temporary File");
}
ifr.load(iniFile.getAbsolutePath());
- Map<String,Properties> sections = ifr.getSections();
- assertNotNull("Sections not null",sections);
+ Map<String, Properties> sections = ifr.getSections();
+ assertNotNull("Sections not null", sections);
assertEquals("Have 4 sections", sections.keySet().size(), 4);
assertTrue("Get globalprop1", sections.get("").getProperty("globalprop1").equals("globalval1"));
assertTrue("Get globalprop2", sections.get("").getProperty("globalprop2").equals("globalval2"));
assertNotNull("Section1 not null", sections.get("Section1"));
- assertEquals("Section1 has 2 properties",sections.get("Section1").size(),2);
- assertTrue("Section1 key1 has val1",sections.get("Section1").getProperty("key1").equals("val1"));
- assertTrue("Section1 key2 has val2",sections.get("Section1").getProperty("key2").equals("val2"));
- assertEquals("Section2 has 3 properties",sections.get("Section2").size(),3);
- assertTrue("Section2 key3 has val3",sections.get("Section2").getProperty("key3").equals("val3"));
- assertTrue("Section2 key4 has val4",sections.get("Section2").getProperty("key4").equals("val4"));
- assertTrue("Section2 key5 has val5",sections.get("Section2").getProperty("key5").equals("val5"));
- assertEquals("Section3 has 2 properties",sections.get("Section3").size(),2);
- assertTrue("Section3 key6 has val6",sections.get("Section3").getProperty("key6").equals("val6"));
- assertTrue("Section3 key7 has val7",sections.get("Section3").getProperty("key7").equals("val7"));
+ assertEquals("Section1 has 2 properties", sections.get("Section1").size(), 2);
+ assertTrue("Section1 key1 has val1", sections.get("Section1").getProperty("key1").equals("val1"));
+ assertTrue("Section1 key2 has val2", sections.get("Section1").getProperty("key2").equals("val2"));
+ assertEquals("Section2 has 3 properties", sections.get("Section2").size(), 3);
+ assertTrue("Section2 key3 has val3", sections.get("Section2").getProperty("key3").equals("val3"));
+ assertTrue("Section2 key4 has val4", sections.get("Section2").getProperty("key4").equals("val4"));
+ assertTrue("Section2 key5 has val5", sections.get("Section2").getProperty("key5").equals("val5"));
+ assertEquals("Section3 has 2 properties", sections.get("Section3").size(), 2);
+ assertTrue("Section3 key6 has val6", sections.get("Section3").getProperty("key6").equals("val6"));
+ assertTrue("Section3 key7 has val7", sections.get("Section3").getProperty("key7").equals("val7"));
}
+ /**
+ * Test to ensure that the loading of a file with an unclosed section header
+ * fails to parse.
+ *
+ * Section needs to be fully enclosed in square brackets '[<name>]'
+ */
+ public void testIncompleteSection1Load()
+ {
+ IniFileReader ifr = new IniFileReader();
+ File iniFile = null;
+ try
+ {
+ iniFile = File.createTempFile(getName(), "ini");
+ iniFile.deleteOnExit();
+ BufferedWriter writer = new BufferedWriter(new FileWriter(iniFile));
+ writer.write("# Global Comment1\n");
+ writer.write("globalprop1=globalval1\n");
+ writer.write("globalprop2=globalval2\n");
+ writer.write("\n");
+ writer.write("[Section1\n"); // Note '[Section1' not complete
+ writer.write("key1=val1\n");
+ writer.write("key2=val2\n");
+ writer.write("\n");
+ writer.close();
+ }
+ catch (IOException e)
+ {
+ e.printStackTrace();
+ fail("Unable to create temporary File");
+ }
+ try
+ {
+ ifr.load(iniFile.getAbsolutePath());
+ fail("File should fail to parse");
+ }
+ catch (IllegalArgumentException iae)
+ {
+ assertEquals("Incorrect Exception", "Section1 is not closed", iae.getMessage());
+ }
+
+ }
}
diff --git a/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/SoapClientTest.java b/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/SoapClientTest.java
index 5d503e1ba9..a3d993a39f 100644
--- a/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/SoapClientTest.java
+++ b/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/SoapClientTest.java
@@ -21,6 +21,9 @@
package org.apache.qpid.info.test;
+import junit.framework.TestCase;
+import org.apache.qpid.info.util.SoapClient;
+
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
@@ -31,22 +34,16 @@ import java.util.HashMap;
import java.util.List;
import java.util.Properties;
-import junit.framework.TestCase;
-
-import org.apache.qpid.info.util.SoapClient;
-
public class SoapClientTest extends TestCase
{
- private final int port = 9100;
-
- private final String hostName = "localhost";
+ private int _port;
- private final String urlPath = "/testSoap";
+ private final String _hostName = "localhost";
- private ServerSocket server = null;
+ private final String _urlPath = "/testSoap";
- Thread socketAcceptor;
+ private ServerSocket _server = null;
/*
* Generate a soap client from a custom URL, hostname, port and soap context
@@ -55,9 +52,9 @@ public class SoapClientTest extends TestCase
private SoapClient getSoapClient()
{
Properties destprops = new Properties();
- destprops.setProperty("soap.hostname", hostName);
- destprops.setProperty("soap.port", port + "");
- destprops.setProperty("soap.urlpath", urlPath);
+ destprops.setProperty("soap.hostname", _hostName);
+ destprops.setProperty("soap.port", _port + "");
+ destprops.setProperty("soap.urlpath", _urlPath);
destprops.setProperty("soap.envelope", "<ip>@IP</ip>");
destprops.setProperty("soap.action", "send");
HashMap<String, String> soapmap = new HashMap<String, String>();
@@ -94,7 +91,8 @@ public class SoapClientTest extends TestCase
response.add(line);
}
br.close();
- } catch (Exception ex)
+ }
+ catch (Exception ex)
{
ex.printStackTrace();
fail("Exception while reading from the socket");
@@ -103,7 +101,7 @@ public class SoapClientTest extends TestCase
assertTrue(response.contains("SOAPAction: \"urn:send\""));
assertTrue(response
.contains("Content-Type: text/xml; charset=\"utf-8\""));
- assertTrue(response.contains("Host: localhost:9000"));
+ assertTrue(response.contains("Host: localhost" + _port));
assertTrue(response.contains("User-Agent: Axis2"));
}
@@ -118,59 +116,93 @@ public class SoapClientTest extends TestCase
//
try
{
- server = new ServerSocket(port);
- assertNotNull(server);
- } catch (Exception ex)
+ _server = new ServerSocket(0);
+ _port = _server.getLocalPort();
+ assertTrue("Server is not yet bound to a port", _port != -1);
+ assertNotNull(_server);
+ }
+ catch (Exception ex)
{
ex.printStackTrace();
fail("Unable to start the socket server");
}
- socketAcceptor = new Thread()
+ Thread _socketAcceptor = new Thread()
{
public void run()
{
try
{
- Socket socket = server.accept();
+ Socket socket = _server.accept();
new ConnectionHandler(socket);
- } catch (IOException e)
+ }
+ catch (IOException e)
{
e.printStackTrace();
}
}
};
- socketAcceptor.start();
+ _socketAcceptor.start();
// Sleep for 1 second to allow the ServerSocket readiness
Thread.sleep(1000);
SoapClient sc = getSoapClient();
assertNotNull(sc);
sc.sendSOAPMessage();
- socketAcceptor.join(2000);
+
+ _socketAcceptor.join(2000);
+
+ assertFalse("Socket Acceptor not stopped.", _socketAcceptor.isAlive());
}
-
- public void testSoapClientXMLData() {
+
+ /**
+ * Test SoapClient correctly clears previously set values
+ */
+ public void testSoapClientXMLData()
+ {
SoapClient sc = getSoapClient();
+
+ StringBuffer initial = new StringBuffer("Initial Value");
+
+ sc.setXMLData(initial);
+
+ assertEquals("getXMLData is not set with initial value",
+ initial.toString(), sc.getXMLData().toString());
+
+
StringBuffer sb = new StringBuffer("<?xml version=\"1.0\"?><ip=@IP><port=@PORT>");
sc.setXMLData(sb);
- assertEquals(sc.getXMLData().length(),sb.length());
- assertEquals("getXMLData does not return the same StringBuffer set by setXMLData",sb.toString(),sc.getXMLData().toString());
+ assertEquals(sc.getXMLData().length(), sb.length());
+ assertEquals("getXMLData does not return the same StringBuffer set by setXMLData",
+ sb.toString(), sc.getXMLData().toString());
}
-
- public void testReplaceVariablesMap() {
- Properties props = new Properties();
- props.setProperty("soap.hostname", hostName);
- props.setProperty("soap.port", port + "");
- props.setProperty("soap.urlpath", urlPath);
+
+ /**
+ * Test that variable replacement is performed on the soap.envelope.
+ * Create dummy soap message and validate that the variable have been replaced.
+ */
+ public void testReplaceVariablesMap()
+ {
+ Properties props = new Properties();
+ // Add dummy values as required to create a soap message
+ props.setProperty("soap.hostname", _hostName);
+ props.setProperty("soap.port", "0");
+ props.setProperty("soap.urlpath", _urlPath);
props.setProperty("soap.action", "send");
+
+ /// The envelope is what we care about
props.setProperty("soap.envelope", "<addr>@IP:@PORT</addr>");
HashMap<String, String> soapmap = new HashMap<String, String>();
- soapmap.put("IP", "127.0.0.1");
- soapmap.put("PORT","8080");
- SoapClient sc = new SoapClient(soapmap,props);
- assertNotNull("SoapClient is null",sc);
- assertTrue("Replace variables did not work as expected","<addr>127.0.0.1:8080</addr>".equals(sc.getXMLData().toString()));
+
+ /// Variables that should be replaced.
+ final String ip = "127.0.0.1";
+ soapmap.put("IP", ip);
+ final String port = "8080";
+ soapmap.put("PORT", port);
+
+ SoapClient sc = new SoapClient(soapmap, props);
+ assertNotNull("SoapClient is null", sc);
+
+ assertTrue("Replace variables did not work as expected", ("<addr>" + ip + ":" + port + "</addr>").equals(sc.getXMLData().toString()));
}
-
}
diff --git a/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/SystemInfoTest.java b/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/SystemInfoTest.java
index 092ea630eb..6cb8e3a90a 100644
--- a/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/SystemInfoTest.java
+++ b/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/SystemInfoTest.java
@@ -21,29 +21,36 @@
package org.apache.qpid.info.test;
+import junit.framework.TestCase;
+import org.apache.qpid.info.SystemInfo;
+
import java.util.Arrays;
import java.util.List;
import java.util.Map;
-import junit.framework.TestCase;
-
-import org.apache.qpid.info.SystemInfo;
-
+/** Test the SystemInfo component */
public class SystemInfoTest extends TestCase
{
+ /**
+ * Ensure the list of required properties are returned by the
+ * SystemInfo.getInfo call
+ */
public void testGetInfo()
{
Map<String, String> sysInfoMap = SystemInfo.getInfo();
assertNotNull("SystemInfo.getInfo() returned null", sysInfoMap);
- List<String> sysInfoProps = Arrays.asList("java.class.path",
+ List<String> sysInfoProps = Arrays.asList(
+ "java.class.path",
"java.vm.name", "java.class.version", "os.arch", "os.name",
"os.version", "sun.arch.data.model", "user.dir", "user.name",
- "user.timezone");
+ "user.timezone", "hostname", "ip", "CPUCores", "Maximum_Memory",
+ "Free_Memory");
+
for (String tag : sysInfoProps)
{
- assertNotNull("Map does not contain the tag: "+tag, sysInfoMap.get(tag));
+ assertNotNull("Map does not contain the tag: " + tag, sysInfoMap.get(tag));
}
}
-}
+} \ No newline at end of file
diff --git a/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/XMLWriterTest.java b/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/XMLWriterTest.java
index f3e2e1d55d..f352226361 100644
--- a/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/XMLWriterTest.java
+++ b/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/XMLWriterTest.java
@@ -21,57 +21,106 @@
package org.apache.qpid.info.test;
-import java.util.HashMap;
-
+import junit.framework.TestCase;
import org.apache.qpid.info.util.XMLWriter;
-import junit.framework.TestCase;
+import java.util.HashMap;
/*
* This test verifies the XML writer custom class operations
*/
+
public class XMLWriterTest extends TestCase
{
private XMLWriter xw = null;
+ /** Test constructor arg is returned via getXML() */
public void testXMLWriter()
{
- xw = new XMLWriter(new StringBuffer("Test"));
+ StringBuffer input = new StringBuffer("Test");
+ xw = new XMLWriter(input);
assertNotNull("XMLWriter could not instantiate", xw);
- assertEquals("XMLWriter.toString() failed","Test", xw.getXML().toString());
+ assertEquals("XMLWriter.getXML() failed", input, xw.getXML());
}
+ /** Test header generation */
public void testWriteXMLHeader()
{
xw = new XMLWriter(new StringBuffer());
assertNotNull(xw);
xw.writeXMLHeader();
- assertEquals("XMLWriter.writeXMLHeader(...) failed","<?xml version=\"1.0\"?>\n", xw.getXML().toString());
+ assertEquals("XMLWriter.writeXMLHeader(...) failed", "<?xml version=\"1.0\"?>\n", xw.getXML().toString());
}
+ /** Test tag created and written correctly */
public void testWriteTag()
{
- String INDEND = " ";
+ String INDENT = " ";
xw = new XMLWriter(new StringBuffer());
assertNotNull("XMLWriter could not instantiate", xw);
xw.writeTag("test", new HashMap<String, String>(), "TEST");
- assertEquals("XMLWriter.writeTag(...) failed","<test>\n" + INDEND + "TEST\n" + "</test>\n", xw.getXML()
+ assertEquals("XMLWriter.writeTag(...) failed", "<test>\n" + INDENT + "TEST\n" + "</test>\n", xw.getXML()
.toString());
}
+ /** Test tag created and written correctly */
+ public void testWriteTagWithNullAttribute()
+ {
+ String INDENT = " ";
+ xw = new XMLWriter(new StringBuffer());
+ assertNotNull("XMLWriter could not instantiate", xw);
+ xw.writeTag("test", null, "TEST");
+ assertEquals("XMLWriter.writeTag(...) failed", "<test>\n" + INDENT + "TEST\n" + "</test>\n", xw.getXML()
+ .toString());
+ }
+
+ /** Test tag created and written correctly with attribute */
+ public void testWriteTagWithAttribute()
+ {
+ String INDENT = " ";
+ xw = new XMLWriter(new StringBuffer());
+ assertNotNull("XMLWriter could not instantiate", xw);
+ HashMap<String, String> attr = new HashMap<String, String>();
+ attr.put("id", "1");
+
+ xw.writeTag("test", attr, "TEST");
+ assertEquals("XMLWriter.writeTag(...) failed", "<test id=\"1\">\n" + INDENT + "TEST\n" + "</test>\n", xw.getXML()
+ .toString());
+ }
+
+ /** Test open tag with an empty attribute map. Just creates an open tag */
public void testWriteOpenTag()
{
xw = new XMLWriter(new StringBuffer());
assertNotNull(xw);
HashMap<String, String> attr = new HashMap<String, String>();
xw.writeOpenTag("test", attr);
- assertEquals("XMLWriter.writeOpenTag(...) failed","<test>\n", xw.getXML().toString());
+ assertEquals("XMLWriter.writeOpenTag(...) failed", "<test>\n", xw.getXML().toString());
+ }
+
+ /** Test open tag with a null attribute map. Just creates an open tag */
+ public void testNullAtrributeOnTag()
+ {
+ xw = new XMLWriter(new StringBuffer());
+ assertNotNull(xw);
+ xw.writeOpenTag("test", null);
+ assertEquals("XMLWriter.writeOpenTag(...) failed", "<test>\n", xw.getXML().toString());
+ }
+
+ /** Test that setting an attribute value on the tag is correctly outputted. */
+ public void testAtrributeOnTag()
+ {
+ xw = new XMLWriter(new StringBuffer());
+ assertNotNull(xw);
+ HashMap<String, String> attr = new HashMap<String, String>();
+
attr.put("id", "1");
xw.writeOpenTag("test1", attr);
- assertEquals("XMLWriter.writeOpenTag(...) failed","<test>\n" + "<test1 id=\"1\">\n", xw.getXML().toString());
+ assertEquals("XMLWriter.writeOpenTag(...) failed", "<test1 id=\"1\">\n", xw.getXML().toString());
}
+ /** Test Close Tag is correctly written */
public void testWriteCloseTag()
{
xw = new XMLWriter(new StringBuffer());