1 package be
.nikiroo
.utils
.test
;
3 import be
.nikiroo
.utils
.Version
;
4 import be
.nikiroo
.utils
.serial
.server
.ConnectActionClientObject
;
5 import be
.nikiroo
.utils
.serial
.server
.ConnectActionClientString
;
6 import be
.nikiroo
.utils
.serial
.server
.ConnectActionServerObject
;
7 import be
.nikiroo
.utils
.serial
.server
.ConnectActionServerString
;
8 import be
.nikiroo
.utils
.serial
.server
.ServerBridge
;
9 import be
.nikiroo
.utils
.serial
.server
.ServerObject
;
10 import be
.nikiroo
.utils
.serial
.server
.ServerString
;
12 class SerialServerTest
extends TestLauncher
{
13 private TestLauncher
createServerStringTestCases(final String
[] args
,
14 final boolean ssl
, final boolean bridge
) {
15 final String ssls
= (ssl ?
"(ssl)" : "(plain text)");
16 final String bridges
= (bridge ?
" with bridge" : "");
17 TestLauncher series
= new TestLauncher(
18 "ServerString " + ssls
+ bridges
, args
);
20 series
.addTest(new TestCase("Simple connection " + ssls
) {
22 public void test() throws Exception
{
23 final String
[] rec
= new String
[1];
25 ServerString server
= new ServerString(this.getName(), 0, ssl
) {
27 protected String
onRequest(
28 ConnectActionServerString action
,
29 Version clientVersion
, String data
)
35 int port
= server
.getPort();
36 assertEquals("A port should have been assigned", true, port
> 0);
40 ServerBridge br
= null;
42 br
= new ServerBridge(0, ssl
, "", port
, ssl
);
46 "A port should have been assigned to the bridge",
54 new ConnectActionClientObject(null, port
, ssl
) {
56 public void action(Version serverVersion
)
70 assertNotNull("The client action was not run", rec
[0]);
71 assertEquals("ok", rec
[0]);
75 series
.addTest(new TestCase("Simple exchange " + ssls
) {
76 final String
[] sent
= new String
[1];
77 final String
[] recd
= new String
[1];
78 final Exception
[] err
= new Exception
[1];
81 public void test() throws Exception
{
82 ServerString server
= new ServerString(this.getName(), 0, ssl
) {
84 protected String
onRequest(
85 ConnectActionServerString action
,
86 Version clientVersion
, String data
)
93 protected void onError(Exception e
) {
99 int port
= server
.getPort();
103 ServerBridge br
= null;
105 br
= new ServerBridge(0, ssl
, "", port
, ssl
);
112 new ConnectActionClientString(null, port
, ssl
) {
114 public void action(Version serverVersion
)
116 recd
[0] = send("ping");
128 if (err
[0] != null) {
129 fail("An exception was thrown: " + err
[0].getMessage());
132 assertEquals("ping", sent
[0]);
133 assertEquals("pong", recd
[0]);
137 series
.addTest(new TestCase("Multiple exchanges " + ssls
) {
138 final String
[] sent
= new String
[3];
139 final String
[] recd
= new String
[3];
140 final Exception
[] err
= new Exception
[1];
143 public void test() throws Exception
{
144 ServerString server
= new ServerString(this.getName(), 0, ssl
) {
146 protected String
onRequest(
147 ConnectActionServerString action
,
148 Version clientVersion
, String data
)
152 sent
[1] = action
.rec();
157 protected void onError(Exception e
) {
163 int port
= server
.getPort();
167 ServerBridge br
= null;
169 br
= new ServerBridge(0, ssl
, "", port
, ssl
);
176 new ConnectActionClientString(null, port
, ssl
) {
178 public void action(Version serverVersion
)
180 recd
[0] = send("ping");
181 recd
[1] = send("ping2");
193 if (err
[0] != null) {
194 fail("An exception was thrown: " + err
[0].getMessage());
197 assertEquals("ping", sent
[0]);
198 assertEquals("pong", recd
[0]);
199 assertEquals("ping2", sent
[1]);
200 assertEquals("pong2", recd
[1]);
204 series
.addTest(new TestCase("Multiple call from client " + ssls
) {
205 final String
[] sent
= new String
[3];
206 final String
[] recd
= new String
[3];
207 final Exception
[] err
= new Exception
[1];
210 public void test() throws Exception
{
211 ServerString server
= new ServerString(this.getName(), 0, ssl
) {
213 protected String
onRequest(
214 ConnectActionServerString action
,
215 Version clientVersion
, String data
)
217 sent
[Integer
.parseInt(data
)] = data
;
218 return "" + (Integer
.parseInt(data
) * 2);
222 protected void onError(Exception e
) {
228 int port
= server
.getPort();
232 ServerBridge br
= null;
234 br
= new ServerBridge(0, ssl
, "", port
, ssl
);
241 new ConnectActionClientString(null, port
, ssl
) {
243 public void action(Version serverVersion
)
245 for (int i
= 0; i
< 3; i
++) {
246 recd
[i
] = send("" + i
);
259 if (err
[0] != null) {
260 fail("An exception was thrown: " + err
[0].getMessage());
263 assertEquals("0", sent
[0]);
264 assertEquals("0", recd
[0]);
265 assertEquals("1", sent
[1]);
266 assertEquals("2", recd
[1]);
267 assertEquals("2", sent
[2]);
268 assertEquals("4", recd
[2]);
275 private TestLauncher
createServerObjectTestCases(final String
[] args
,
276 final boolean ssl
, final boolean bridge
) {
277 final String ssls
= (ssl ?
"(ssl)" : "(plain text)");
278 final String bridges
= (bridge ?
" with bridge" : "");
279 TestLauncher series
= new TestLauncher(
280 "ServerObject " + ssls
+ bridges
, args
);
282 series
.addTest(new TestCase("Simple connection " + ssls
) {
284 public void test() throws Exception
{
285 final Object
[] rec
= new Object
[1];
287 ServerObject server
= new ServerObject(this.getName(), 0, ssl
) {
289 protected Object
onRequest(
290 ConnectActionServerObject action
,
291 Version clientVersion
, Object data
)
297 int port
= server
.getPort();
298 assertEquals("A port should have been assigned", true, port
> 0);
302 ServerBridge br
= null;
304 br
= new ServerBridge(0, ssl
, "", port
, ssl
);
311 new ConnectActionClientObject(null, port
, ssl
) {
313 public void action(Version serverVersion
)
327 assertNotNull("The client action was not run", rec
[0]);
328 assertEquals(true, (boolean) ((Boolean
) rec
[0]));
332 series
.addTest(new TestCase("Simple exchange " + ssls
) {
333 final Object
[] sent
= new Object
[1];
334 final Object
[] recd
= new Object
[1];
335 final Exception
[] err
= new Exception
[1];
338 public void test() throws Exception
{
339 ServerObject server
= new ServerObject(this.getName(), 0, ssl
) {
341 protected Object
onRequest(
342 ConnectActionServerObject action
,
343 Version clientVersion
, Object data
)
350 protected void onError(Exception e
) {
356 int port
= server
.getPort();
360 ServerBridge br
= null;
362 br
= new ServerBridge(0, ssl
, "", port
, ssl
);
369 new ConnectActionClientObject(null, port
, ssl
) {
371 public void action(Version serverVersion
)
373 recd
[0] = send("ping");
385 if (err
[0] != null) {
386 fail("An exception was thrown: " + err
[0].getMessage());
389 assertEquals("ping", sent
[0]);
390 assertEquals("pong", recd
[0]);
394 series
.addTest(new TestCase("Multiple exchanges " + ssls
) {
395 final Object
[] sent
= new Object
[3];
396 final Object
[] recd
= new Object
[3];
397 final Exception
[] err
= new Exception
[1];
400 public void test() throws Exception
{
401 ServerObject server
= new ServerObject(this.getName(), 0, ssl
) {
403 protected Object
onRequest(
404 ConnectActionServerObject action
,
405 Version clientVersion
, Object data
)
409 sent
[1] = action
.rec();
414 protected void onError(Exception e
) {
420 int port
= server
.getPort();
424 ServerBridge br
= null;
426 br
= new ServerBridge(0, ssl
, "", port
, ssl
);
433 new ConnectActionClientObject(null, port
, ssl
) {
435 public void action(Version serverVersion
)
437 recd
[0] = send("ping");
438 recd
[1] = send("ping2");
450 if (err
[0] != null) {
451 fail("An exception was thrown: " + err
[0].getMessage());
454 assertEquals("ping", sent
[0]);
455 assertEquals("pong", recd
[0]);
456 assertEquals("ping2", sent
[1]);
457 assertEquals("pong2", recd
[1]);
461 series
.addTest(new TestCase("Multiple call from client " + ssls
) {
462 final Object
[] sent
= new Object
[3];
463 final Object
[] recd
= new Object
[3];
464 final Exception
[] err
= new Exception
[1];
467 public void test() throws Exception
{
468 ServerObject server
= new ServerObject(this.getName(), 0, ssl
) {
470 protected Object
onRequest(
471 ConnectActionServerObject action
,
472 Version clientVersion
, Object data
)
474 sent
[(Integer
) data
] = data
;
475 return ((Integer
) data
) * 2;
479 protected void onError(Exception e
) {
485 int port
= server
.getPort();
489 ServerBridge br
= null;
491 br
= new ServerBridge(0, ssl
, "", port
, ssl
);
498 new ConnectActionClientObject(null, port
, ssl
) {
500 public void action(Version serverVersion
)
502 for (int i
= 0; i
< 3; i
++) {
516 if (err
[0] != null) {
517 fail("An exception was thrown: " + err
[0].getMessage());
520 assertEquals(0, sent
[0]);
521 assertEquals(0, recd
[0]);
522 assertEquals(1, sent
[1]);
523 assertEquals(2, recd
[1]);
524 assertEquals(2, sent
[2]);
525 assertEquals(4, recd
[2]);
532 public SerialServerTest(String
[] args
) {
533 super("SerialServer test", args
);
535 for (boolean ssl
: new Boolean
[] { false, true }) {
536 for (boolean bridge
: new Boolean
[] { false, true }) {
537 addSeries(createServerObjectTestCases(args
, ssl
, bridge
));
538 addSeries(createServerStringTestCases(args
, ssl
, bridge
));