javacommons/comms/tsrc/javaapi/javasrc/com/nokia/mj/test/comms/TestCommsServerEndpoint.java
changeset 87 1627c337e51e
parent 21 2a9601315dfc
equal deleted inserted replaced
80:d6dafc5d983f 87:1627c337e51e
   117             {
   117             {
   118                 ((TestCommsServerEndpoint) tc).testSendInProcessMessage();
   118                 ((TestCommsServerEndpoint) tc).testSendInProcessMessage();
   119             }
   119             }
   120         }));
   120         }));
   121 
   121 
       
   122         aSuite.addTest(new TestCommsServerEndpoint("testServerAndTwoClients", new TestMethod()
       
   123         {
       
   124             public void run(TestCase tc)
       
   125             {
       
   126                 ((TestCommsServerEndpoint) tc).testServerAndTwoClients();
       
   127             }
       
   128         }));
       
   129 
       
   130 
   122         return aSuite;
   131         return aSuite;
   123     }
   132     }
   124 
   133 
   125     public void assertEquals(byte[] a, byte[] b)
   134     public void assertEquals(byte[] a, byte[] b)
   126     {
   135     {
   722             comms.destroy();
   731             comms.destroy();
   723             server.destroy();
   732             server.destroy();
   724         }
   733         }
   725     }
   734     }
   726 
   735 
       
   736     public void testServerAndTwoClients()
       
   737     {
       
   738         System.out.println("TestCommsServerEndpoint.testServerAndTwoClients()");
       
   739 
       
   740         class RouterListener implements CommsListener
       
   741         {
       
   742             CommsEndpointBase iComms;
       
   743             CommsMessage iFirstMessage;
       
   744 
       
   745             public RouterListener(CommsEndpointBase aComms)
       
   746             {
       
   747                 iComms = aComms;
       
   748             }
       
   749 
       
   750             public void processMessage(CommsMessage aMessage)
       
   751             {
       
   752                 if (iFirstMessage == null)
       
   753                 {
       
   754                     // delay reply until second message is received
       
   755                     iFirstMessage = aMessage;
       
   756                 }
       
   757                 else
       
   758                 {
       
   759                     // reply to first client
       
   760                     CommsMessage reply = new CommsMessage();
       
   761                     reply.replyTo(iFirstMessage);
       
   762                     iComms.send(reply);
       
   763         
       
   764                     // reply to second client
       
   765                     reply.replyTo(aMessage);
       
   766                     iComms.send(reply);
       
   767                 }
       
   768             }
       
   769         }
       
   770 
       
   771         class SendReceiver extends Thread
       
   772         {
       
   773             public void run()
       
   774             {
       
   775                 try
       
   776                 {
       
   777                     CommsEndpoint client = new CommsEndpoint();
       
   778                     client.connect(SERVER_ADDRESS);
       
   779                     CommsMessage reply = client.sendReceive(new CommsMessage(), CommsEndpoint.WAIT_FOR_EVER);
       
   780                     client.disconnect();
       
   781                     client.destroy();
       
   782                 }
       
   783                 catch (Exception e)
       
   784                 {
       
   785                     e.printStackTrace();
       
   786                     fail("SendReceiver.run");
       
   787                 }
       
   788             }
       
   789         }
       
   790 
       
   791         CommsServerEndpoint server = null;
       
   792         try
       
   793         {
       
   794             server = new CommsServerEndpoint();
       
   795             RouterListener listener = new RouterListener(server);
       
   796             server.registerDefaultListener(listener);
       
   797             server.start(SERVER_ADDRESS);
       
   798 
       
   799             SendReceiver client1 = new SendReceiver();
       
   800             SendReceiver client2 = new SendReceiver();
       
   801 
       
   802             client1.start();
       
   803             client2.start();
       
   804             client1.join();
       
   805             client2.join();
       
   806 
       
   807             server.stop();
       
   808         }
       
   809         catch (Exception e)
       
   810         {
       
   811             e.printStackTrace();
       
   812             fail("testServerAndTwoClients failed");
       
   813         }
       
   814         finally
       
   815         {
       
   816             server.destroy();
       
   817         }
       
   818     }
   727 
   819 
   728 
   820 
   729 }
   821 }
   730 
   822