package be.nikiroo.utils.test;
+import be.nikiroo.utils.TraceHandler;
import be.nikiroo.utils.Version;
import be.nikiroo.utils.serial.ConnectActionClient;
import be.nikiroo.utils.serial.ConnectActionServer;
import be.nikiroo.utils.serial.Server;
class SerialTest extends TestLauncher {
- @SuppressWarnings("unused")
- private void not_used() {
- // TODO: test Server ; but this will at least help dependency checking
- try {
- Server server = new Server(0, false) {
- @Override
- protected Object onRequest(ConnectActionServer action,
- Version clientVersion, Object data) throws Exception {
- return null;
- }
- };
- } catch (Exception e) {
- }
- }
-
private SerialTest() {
super("Serial test", null);
}
- private TestCase[] createServerTestCases(final boolean ssl) {
+ private TestLauncher createServerTestCases(final String[] args,
+ final boolean ssl) {
final String ssls = (ssl ? "(ssl)" : "(plain text)");
- return new TestCase[] {
- new TestCase("Client/Server simple connection " + ssls) {
+ TestLauncher series = new TestLauncher("Client/Server " + ssls, args);
+
+ series.addTest(new TestCase("Simple connection " + ssls) {
+ @Override
+ public void test() throws Exception {
+ final Object[] rec = new Object[1];
+
+ Server server = new Server(this.getName(), 0, ssl) {
@Override
- public void test() throws Exception {
- final Object[] rec = new Object[1];
-
- Server server = new Server("testy", 0, ssl) {
- @Override
- protected Object onRequest(
- ConnectActionServer action,
- Version clientVersion, Object data)
- throws Exception {
- return null;
- }
- };
-
- assertEquals("A port should have been assigned", true,
- server.getPort() > 0);
-
- server.start();
-
- try {
- new ConnectActionClient(null, server.getPort(), ssl) {
- @Override
- public void action(Version serverVersion)
- throws Exception {
- rec[0] = true;
- }
- }.connect();
- } finally {
- server.stop();
+ protected Object onRequest(ConnectActionServer action,
+ Version clientVersion, Object data)
+ throws Exception {
+ return null;
+ }
+ };
+
+ assertEquals("A port should have been assigned", true,
+ server.getPort() > 0);
+
+ // TODO: remove
+ server.setTraceHandler(new TraceHandler(true, true, true));
+
+ server.start();
+
+ try {
+ new ConnectActionClient(null, server.getPort(), ssl) {
+ @Override
+ public void action(Version serverVersion)
+ throws Exception {
+ rec[0] = true;
}
+ }.connect();
+ } finally {
+ server.stop();
+ }
- assertNotNull("The client action was not run", rec[0]);
- assertEquals(true, (boolean) ((Boolean) rec[0]));
+ assertNotNull("The client action was not run", rec[0]);
+ assertEquals(true, (boolean) ((Boolean) rec[0]));
+ }
+ });
+
+ series.addTest(new TestCase("Simple exchange " + ssls) {
+ final Object[] sent = new Object[1];
+ final Object[] recd = new Object[1];
+ final Exception[] err = new Exception[1];
+
+ @Override
+ public void test() throws Exception {
+ Server server = new Server(this.getName(), 0, ssl) {
+ @Override
+ protected Object onRequest(ConnectActionServer action,
+ Version clientVersion, Object data)
+ throws Exception {
+ sent[0] = data;
+ return "pong";
}
- }, //
- new TestCase("Client/Server simple exchange " + ssls) {
- final Object[] rec = new Object[3];
@Override
- public void test() throws Exception {
- Server server = new Server("testy", 0, ssl) {
- @Override
- protected Object onRequest(
- ConnectActionServer action,
- Version clientVersion, Object data)
- throws Exception {
- rec[0] = data;
- return "pong";
- }
+ protected void onError(Exception e) {
+ super.onError(e);
+ err[0] = e;
+ }
+ };
- @Override
- protected void onError(Exception e) {
- super.onError(e);
- rec[2] = e;
- }
- };
-
- assertEquals("A port should have been assigned", true,
- server.getPort() > 0);
-
- server.start();
-
- try {
- new ConnectActionClient(null, server.getPort(), ssl) {
- @Override
- public void action(Version serverVersion)
- throws Exception {
- rec[1] = send("ping");
- }
- }.connect();
- } finally {
- server.stop();
- }
+ server.start();
- if (rec[2] != null) {
- fail("An exception was thrown: "
- + ((Exception) rec[2]).getMessage());
+ try {
+ new ConnectActionClient(null, server.getPort(), ssl) {
+ @Override
+ public void action(Version serverVersion)
+ throws Exception {
+ recd[0] = send("ping");
}
+ }.connect();
+ } finally {
+ server.stop();
+ }
- assertEquals("ping", rec[0]);
- assertEquals("pong", rec[1]);
+ if (err[0] != null) {
+ fail("An exception was thrown: " + err[0].getMessage());
+ }
+
+ assertEquals("ping", sent[0]);
+ assertEquals("pong", recd[0]);
+ }
+ });
+
+ series.addTest(new TestCase("Multiple exchanges " + ssls) {
+ final Object[] sent = new Object[3];
+ final Object[] recd = new Object[3];
+ final Exception[] err = new Exception[1];
+
+ @Override
+ public void test() throws Exception {
+ Server server = new Server(this.getName(), 0, ssl) {
+ @Override
+ protected Object onRequest(ConnectActionServer action,
+ Version clientVersion, Object data)
+ throws Exception {
+ sent[0] = data;
+ action.send("pong");
+ sent[1] = action.flush();
+ return "pong2";
}
- }, //
- new TestCase("Client/Server multiple exchanges " + ssls) {
- final Object[] sent = new Object[3];
- final Object[] recd = new Object[3];
- final Exception[] err = new Exception[1];
@Override
- public void test() throws Exception {
- Server server = new Server("testy", 0, ssl) {
- @Override
- protected Object onRequest(
- ConnectActionServer action,
- Version clientVersion, Object data)
- throws Exception {
- sent[0] = data;
- action.send("pong");
- sent[1] = action.flush();
- return "pong2";
- }
+ protected void onError(Exception e) {
+ super.onError(e);
+ err[0] = e;
+ }
+ };
- @Override
- protected void onError(Exception e) {
- super.onError(e);
- err[0] = e;
- }
- };
-
- server.start();
-
- try {
- new ConnectActionClient(null, server.getPort(), ssl) {
- @Override
- public void action(Version serverVersion)
- throws Exception {
- recd[0] = send("ping");
- recd[1] = send("ping2");
- }
- }.connect();
- } finally {
- server.stop();
- }
+ server.start();
- if (err[0] != null) {
- fail("An exception was thrown: "
- + err[0].getMessage());
+ try {
+ new ConnectActionClient(null, server.getPort(), ssl) {
+ @Override
+ public void action(Version serverVersion)
+ throws Exception {
+ recd[0] = send("ping");
+ recd[1] = send("ping2");
}
+ }.connect();
+ } finally {
+ server.stop();
+ }
+
+ if (err[0] != null) {
+ fail("An exception was thrown: " + err[0].getMessage());
+ }
+
+ assertEquals("ping", sent[0]);
+ assertEquals("pong", recd[0]);
+ assertEquals("ping2", sent[1]);
+ assertEquals("pong2", recd[1]);
+ }
+ });
+
+ series.addTest(new TestCase("Multiple call from client " + ssls) {
+ final Object[] sent = new Object[3];
+ final Object[] recd = new Object[3];
+ final Exception[] err = new Exception[1];
- assertEquals("ping", sent[0]);
- assertEquals("pong", recd[0]);
- assertEquals("ping2", sent[1]);
- assertEquals("pong2", recd[1]);
+ @Override
+ public void test() throws Exception {
+ Server server = new Server(this.getName(), 0, ssl) {
+ @Override
+ protected Object onRequest(ConnectActionServer action,
+ Version clientVersion, Object data)
+ throws Exception {
+ sent[(Integer) data] = data;
+ return ((Integer) data) * 2;
}
- }, //
- new TestCase("Client/Server multiple call from client " + ssls) {
- final Object[] sent = new Object[3];
- final Object[] recd = new Object[3];
- final Exception[] err = new Exception[1];
@Override
- public void test() throws Exception {
- Server server = new Server("testy", 0, ssl) {
- @Override
- protected Object onRequest(
- ConnectActionServer action,
- Version clientVersion, Object data)
- throws Exception {
- sent[(Integer) data] = data;
- return ((Integer) data) * 2;
- }
+ protected void onError(Exception e) {
+ super.onError(e);
+ err[0] = e;
+ }
+ };
+
+ server.start();
- @Override
- protected void onError(Exception e) {
- super.onError(e);
- err[0] = e;
+ try {
+ new ConnectActionClient(null, server.getPort(), ssl) {
+ @Override
+ public void action(Version serverVersion)
+ throws Exception {
+ for (int i = 0; i < 3; i++) {
+ recd[i] = send(i);
}
- };
-
- server.start();
-
- try {
- new ConnectActionClient(null, server.getPort(), ssl) {
- @Override
- public void action(Version serverVersion)
- throws Exception {
- for (int i = 0; i < 3; i++) {
- recd[i] = send(i);
- }
- }
- }.connect();
- } finally {
- server.stop();
}
+ }.connect();
+ } finally {
+ server.stop();
+ }
- if (err[0] != null) {
- fail("An exception was thrown: "
- + err[0].getMessage());
- }
+ if (err[0] != null) {
+ fail("An exception was thrown: " + err[0].getMessage());
+ }
- assertEquals(0, sent[0]);
- assertEquals(0, recd[0]);
- assertEquals(1, sent[1]);
- assertEquals(2, recd[1]);
- assertEquals(2, sent[2]);
- assertEquals(4, recd[2]);
- }
- }, //
- };
+ assertEquals(0, sent[0]);
+ assertEquals(0, recd[0]);
+ assertEquals(1, sent[1]);
+ assertEquals(2, recd[1]);
+ assertEquals(2, sent[2]);
+ assertEquals(4, recd[2]);
+ }
+ });
+
+ return series;
}
public SerialTest(String[] args) {
super("Serial test", args);
- for (TestCase test : createServerTestCases(false)) {
- addTest(test);
- }
+ addSeries(createServerTestCases(args, false));
- for (TestCase test : createServerTestCases(true)) {
- addTest(test);
- }
+ addSeries(createServerTestCases(args, true));
addTest(new TestCase("Simple class Import/Export") {
@Override