X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2Ftest%2FSerialServerTest.java;h=a3f4f9ef4794455eac3862765fbbc8f3a684b33d;hb=8468bb79f0fc9c88fa21355509731625732eb10e;hp=67ba1610ef7725c4d8939174bfe24f5daa5aa584;hpb=d827da2aba3d8b0e4a76426b5a76a9045ca584b2;p=nikiroo-utils.git diff --git a/src/be/nikiroo/utils/test/SerialServerTest.java b/src/be/nikiroo/utils/test/SerialServerTest.java index 67ba161..a3f4f9e 100644 --- a/src/be/nikiroo/utils/test/SerialServerTest.java +++ b/src/be/nikiroo/utils/test/SerialServerTest.java @@ -1,5 +1,7 @@ package be.nikiroo.utils.test; +import java.net.URL; + import be.nikiroo.utils.Version; import be.nikiroo.utils.serial.server.ConnectActionClientObject; import be.nikiroo.utils.serial.server.ConnectActionClientString; @@ -11,18 +13,18 @@ import be.nikiroo.utils.serial.server.ServerString; class SerialServerTest extends TestLauncher { private TestLauncher createServerStringTestCases(final String[] args, - final boolean ssl, final boolean bridge) { - final String ssls = (ssl ? "(ssl)" : "(plain text)"); + final String key, final boolean bridge) { + final String skey = (key != null ? "(encrypted)" : "(plain text)"); final String bridges = (bridge ? " with bridge" : ""); TestLauncher series = new TestLauncher( - "ServerString " + ssls + bridges, args); + "ServerString " + skey + bridges, args); - series.addTest(new TestCase("Simple connection " + ssls) { + series.addTest(new TestCase("Simple connection " + skey) { @Override public void test() throws Exception { final String[] rec = new String[1]; - ServerString server = new ServerString(this.getName(), 0, ssl) { + ServerString server = new ServerString(this.getName(), 0, key) { @Override protected String onRequest( ConnectActionServerString action, @@ -43,7 +45,8 @@ class SerialServerTest extends TestLauncher { ServerBridge br = null; if (bridge) { - br = new ServerBridge(0, ssl, "", port, ssl); + br = new ServerBridge(0, key, "", port, key); + br.setTraceHandler(null); port = br.getPort(); assertEquals( @@ -55,7 +58,7 @@ class SerialServerTest extends TestLauncher { try { try { - new ConnectActionClientObject(null, port, ssl) { + new ConnectActionClientObject(null, port, key) { @Override public void action(Version serverVersion) throws Exception { @@ -76,14 +79,14 @@ class SerialServerTest extends TestLauncher { } }); - series.addTest(new TestCase("Simple exchange " + ssls) { + series.addTest(new TestCase("Simple exchange " + skey) { 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) { + ServerString server = new ServerString(this.getName(), 0, key) { @Override protected String onRequest( ConnectActionServerString action, @@ -95,7 +98,6 @@ class SerialServerTest extends TestLauncher { @Override protected void onError(Exception e) { - super.onError(e); err[0] = e; } }; @@ -106,14 +108,15 @@ class SerialServerTest extends TestLauncher { ServerBridge br = null; if (bridge) { - br = new ServerBridge(0, ssl, "", port, ssl); + br = new ServerBridge(0, key, "", port, key); + br.setTraceHandler(null); port = br.getPort(); br.start(); } try { try { - new ConnectActionClientString(null, port, ssl) { + new ConnectActionClientString(null, port, key) { @Override public void action(Version serverVersion) throws Exception { @@ -138,14 +141,14 @@ class SerialServerTest extends TestLauncher { } }); - series.addTest(new TestCase("Multiple exchanges " + ssls) { + series.addTest(new TestCase("Multiple exchanges " + skey) { final String[] sent = new String[3]; final String[] recd = new String[3]; final Exception[] err = new Exception[1]; @Override public void test() throws Exception { - ServerString server = new ServerString(this.getName(), 0, ssl) { + ServerString server = new ServerString(this.getName(), 0, key) { @Override protected String onRequest( ConnectActionServerString action, @@ -159,7 +162,6 @@ class SerialServerTest extends TestLauncher { @Override protected void onError(Exception e) { - super.onError(e); err[0] = e; } }; @@ -170,14 +172,15 @@ class SerialServerTest extends TestLauncher { ServerBridge br = null; if (bridge) { - br = new ServerBridge(0, ssl, "", port, ssl); + br = new ServerBridge(0, key, "", port, key); + br.setTraceHandler(null); port = br.getPort(); br.start(); } try { try { - new ConnectActionClientString(null, port, ssl) { + new ConnectActionClientString(null, port, key) { @Override public void action(Version serverVersion) throws Exception { @@ -205,14 +208,14 @@ class SerialServerTest extends TestLauncher { } }); - series.addTest(new TestCase("Multiple call from client " + ssls) { + series.addTest(new TestCase("Multiple call from client " + skey) { final String[] sent = new String[3]; final String[] recd = new String[3]; final Exception[] err = new Exception[1]; @Override public void test() throws Exception { - ServerString server = new ServerString(this.getName(), 0, ssl) { + ServerString server = new ServerString(this.getName(), 0, key) { @Override protected String onRequest( ConnectActionServerString action, @@ -224,7 +227,6 @@ class SerialServerTest extends TestLauncher { @Override protected void onError(Exception e) { - super.onError(e); err[0] = e; } }; @@ -235,14 +237,15 @@ class SerialServerTest extends TestLauncher { ServerBridge br = null; if (bridge) { - br = new ServerBridge(0, ssl, "", port, ssl); + br = new ServerBridge(0, key, "", port, key); + br.setTraceHandler(null); port = br.getPort(); br.start(); } try { try { - new ConnectActionClientString(null, port, ssl) { + new ConnectActionClientString(null, port, key) { @Override public void action(Version serverVersion) throws Exception { @@ -277,18 +280,18 @@ class SerialServerTest extends TestLauncher { } private TestLauncher createServerObjectTestCases(final String[] args, - final boolean ssl, final boolean bridge) { - final String ssls = (ssl ? "(ssl)" : "(plain text)"); + final String key, final boolean bridge) { + final String skey = (key != null ? "(encrypted)" : "(plain text)"); final String bridges = (bridge ? " with bridge" : ""); TestLauncher series = new TestLauncher( - "ServerObject " + ssls + bridges, args); + "ServerObject " + skey + bridges, args); - series.addTest(new TestCase("Simple connection " + ssls) { + series.addTest(new TestCase("Simple connection " + skey) { @Override public void test() throws Exception { final Object[] rec = new Object[1]; - ServerObject server = new ServerObject(this.getName(), 0, ssl) { + ServerObject server = new ServerObject(this.getName(), 0, key) { @Override protected Object onRequest( ConnectActionServerObject action, @@ -309,18 +312,15 @@ class SerialServerTest extends TestLauncher { ServerBridge br = null; if (bridge) { - br = new ServerBridge(0, ssl, "", port, ssl) { - @Override - protected void onError(Exception e) { - } - }; + br = new ServerBridge(0, key, "", port, key); + br.setTraceHandler(null); port = br.getPort(); br.start(); } try { try { - new ConnectActionClientObject(null, port, ssl) { + new ConnectActionClientObject(null, port, key) { @Override public void action(Version serverVersion) throws Exception { @@ -345,14 +345,14 @@ class SerialServerTest extends TestLauncher { } }); - series.addTest(new TestCase("Simple exchange " + ssls) { + series.addTest(new TestCase("Simple exchange " + skey) { final Object[] sent = new Object[1]; final Object[] recd = new Object[1]; final Exception[] err = new Exception[1]; @Override public void test() throws Exception { - ServerObject server = new ServerObject(this.getName(), 0, ssl) { + ServerObject server = new ServerObject(this.getName(), 0, key) { @Override protected Object onRequest( ConnectActionServerObject action, @@ -364,7 +364,6 @@ class SerialServerTest extends TestLauncher { @Override protected void onError(Exception e) { - super.onError(e); err[0] = e; } }; @@ -375,14 +374,15 @@ class SerialServerTest extends TestLauncher { ServerBridge br = null; if (bridge) { - br = new ServerBridge(0, ssl, "", port, ssl); + br = new ServerBridge(0, key, "", port, key); + br.setTraceHandler(null); port = br.getPort(); br.start(); } try { try { - new ConnectActionClientObject(null, port, ssl) { + new ConnectActionClientObject(null, port, key) { @Override public void action(Version serverVersion) throws Exception { @@ -407,14 +407,14 @@ class SerialServerTest extends TestLauncher { } }); - series.addTest(new TestCase("Multiple exchanges " + ssls) { + series.addTest(new TestCase("Multiple exchanges " + skey) { final Object[] sent = new Object[3]; final Object[] recd = new Object[3]; final Exception[] err = new Exception[1]; @Override public void test() throws Exception { - ServerObject server = new ServerObject(this.getName(), 0, ssl) { + ServerObject server = new ServerObject(this.getName(), 0, key) { @Override protected Object onRequest( ConnectActionServerObject action, @@ -428,7 +428,6 @@ class SerialServerTest extends TestLauncher { @Override protected void onError(Exception e) { - super.onError(e); err[0] = e; } }; @@ -439,14 +438,15 @@ class SerialServerTest extends TestLauncher { ServerBridge br = null; if (bridge) { - br = new ServerBridge(0, ssl, "", port, ssl); + br = new ServerBridge(0, key, "", port, key); + br.setTraceHandler(null); port = br.getPort(); br.start(); } try { try { - new ConnectActionClientObject(null, port, ssl) { + new ConnectActionClientObject(null, port, key) { @Override public void action(Version serverVersion) throws Exception { @@ -474,14 +474,86 @@ class SerialServerTest extends TestLauncher { } }); - series.addTest(new TestCase("Multiple call from client " + ssls) { + series.addTest(new TestCase("Object array of URLs " + skey) { + final Object[] sent = new Object[1]; + final Object[] recd = new Object[1]; + final Exception[] err = new Exception[1]; + + @Override + public void test() throws Exception { + ServerObject server = new ServerObject(this.getName(), 0, key) { + @Override + protected Object onRequest( + ConnectActionServerObject action, + Version clientVersion, Object data) + throws Exception { + sent[0] = data; + return new Object[] { "ACK" }; + } + + @Override + protected void onError(Exception e) { + err[0] = e; + } + }; + + int port = server.getPort(); + + server.start(); + + ServerBridge br = null; + if (bridge) { + br = new ServerBridge(0, key, "", port, key); + br.setTraceHandler(null); + port = br.getPort(); + br.start(); + } + + try { + try { + new ConnectActionClientObject(null, port, key) { + @Override + public void action(Version serverVersion) + throws Exception { + recd[0] = send(new Object[] { + "key", + new URL( + "https://example.com/from_client"), + "https://example.com/from_client" }); + } + }.connect(); + } finally { + server.stop(); + } + } finally { + if (br != null) { + br.stop(); + } + } + + if (err[0] != null) { + fail("An exception was thrown: " + err[0].getMessage()); + } + + Object[] sento = (Object[]) (sent[0]); + Object[] recdo = (Object[]) (recd[0]); + + assertEquals("key", sento[0]); + assertEquals("https://example.com/from_client", + ((URL) sento[1]).toString()); + assertEquals("https://example.com/from_client", sento[2]); + assertEquals("ACK", recdo[0]); + } + }); + + series.addTest(new TestCase("Multiple call from client " + skey) { final Object[] sent = new Object[3]; final Object[] recd = new Object[3]; final Exception[] err = new Exception[1]; @Override public void test() throws Exception { - ServerObject server = new ServerObject(this.getName(), 0, ssl) { + ServerObject server = new ServerObject(this.getName(), 0, key) { @Override protected Object onRequest( ConnectActionServerObject action, @@ -493,7 +565,6 @@ class SerialServerTest extends TestLauncher { @Override protected void onError(Exception e) { - super.onError(e); err[0] = e; } }; @@ -504,14 +575,15 @@ class SerialServerTest extends TestLauncher { ServerBridge br = null; if (bridge) { - br = new ServerBridge(0, ssl, "", port, ssl); + br = new ServerBridge(0, key, "", port, key); + br.setTraceHandler(null); port = br.getPort(); br.start(); } try { try { - new ConnectActionClientObject(null, port, ssl) { + new ConnectActionClientObject(null, port, key) { @Override public void action(Version serverVersion) throws Exception { @@ -548,10 +620,10 @@ class SerialServerTest extends TestLauncher { public SerialServerTest(String[] args) { super("SerialServer test", args); - for (boolean ssl : new Boolean[] { false, true }) { + for (String key : new String[] { null, "" }) { for (boolean bridge : new Boolean[] { false, true }) { - addSeries(createServerObjectTestCases(args, ssl, bridge)); - addSeries(createServerStringTestCases(args, ssl, bridge)); + addSeries(createServerObjectTestCases(args, key, bridge)); + addSeries(createServerStringTestCases(args, key, bridge)); } } }