- private TestLauncher createServerStringTestCases(final String[] args,
- final boolean ssl) {
- final String ssls = (ssl ? "(ssl)" : "(plain text)");
- TestLauncher series = new TestLauncher("Client/Server " + ssls, args);
-
- series.addTest(new TestCase("Simple connection " + ssls) {
- @Override
- public void test() throws Exception {
- final String[] rec = new String[1];
-
- ServerString server = new ServerString(this.getName(), 0, ssl) {
- @Override
- protected String onRequest(
- ConnectActionServerString action,
- Version clientVersion, String data)
- throws Exception {
- return null;
- }
- };
-
- assertEquals("A port should have been assigned", true,
- server.getPort() > 0);
-
- server.start();
-
- try {
- new ConnectActionClientObject(null, server.getPort(), ssl) {
- @Override
- public void action(Version serverVersion)
- throws Exception {
- rec[0] = "ok";
- }
- }.connect();
- } finally {
- server.stop();
- }
-
- assertNotNull("The client action was not run", rec[0]);
- assertEquals("ok", rec[0]);
- }
- });
-
- series.addTest(new TestCase("Simple exchange " + ssls) {
- final String[] sent = new String[1];
- final String[] recd = new String[1];
- final Exception[] err = new Exception[1];
-
- @Override
- public void test() throws Exception {
- ServerString server = new ServerString(this.getName(), 0, ssl) {
- @Override
- protected String onRequest(
- ConnectActionServerString action,
- Version clientVersion, String data)
- throws Exception {
- sent[0] = data;
- return "pong";
- }
-
- @Override
- protected void onError(Exception e) {
- super.onError(e);
- err[0] = e;
- }
- };
-
- server.start();
-
- try {
- new ConnectActionClientString(null, server.getPort(), ssl) {
- @Override
- public void action(Version serverVersion)
- throws Exception {
- recd[0] = send("ping");
- }
- }.connect();
- } finally {
- server.stop();
- }
-
- 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 String[] sent = new String[3];
- final String[] recd = new String[3];
- final Exception[] err = new Exception[1];