/protocols/ss7/map/map-impl/src/test/java/org/mobicents/protocols/ss7/map/functional/MAPFunctionalTest.java

http://mobicents.googlecode.com/ · Java · 577 lines · 326 code · 78 blank · 173 comment · 4 complexity · 9565f25359e91a9710effc06560ae217 MD5 · raw file

  1. /*
  2. * JBoss, Home of Professional Open Source
  3. * Copyright 2011, Red Hat, Inc. and individual contributors
  4. * by the @authors tag. See the copyright.txt in the distribution for a
  5. * full listing of individual contributors.
  6. *
  7. * This is free software; you can redistribute it and/or modify it
  8. * under the terms of the GNU Lesser General Public License as
  9. * published by the Free Software Foundation; either version 2.1 of
  10. * the License, or (at your option) any later version.
  11. *
  12. * This software is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  15. * Lesser General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU Lesser General Public
  18. * License along with this software; if not, write to the Free
  19. * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  20. * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  21. */
  22. package org.mobicents.protocols.ss7.map.functional;
  23. import static org.testng.Assert.assertTrue;
  24. import static org.testng.Assert.fail;
  25. import java.io.InputStream;
  26. import java.util.Date;
  27. import java.util.Properties;
  28. import org.apache.log4j.BasicConfigurator;
  29. import org.apache.log4j.Logger;
  30. import org.apache.log4j.PropertyConfigurator;
  31. import org.mobicents.protocols.ss7.indicator.RoutingIndicator;
  32. import org.mobicents.protocols.ss7.map.MAPStackImpl;
  33. import org.mobicents.protocols.ss7.sccp.impl.SccpHarness;
  34. import org.mobicents.protocols.ss7.sccp.parameter.SccpAddress;
  35. import org.testng.annotations.AfterClass;
  36. import org.testng.annotations.AfterTest;
  37. import org.testng.annotations.BeforeClass;
  38. import org.testng.annotations.BeforeTest;
  39. import org.testng.annotations.Test;
  40. /**
  41. *
  42. * @author amit bhayani
  43. * @author sergey vetyutnev
  44. *
  45. */
  46. public class MAPFunctionalTest extends SccpHarness {
  47. private static Logger logger = Logger.getLogger(MAPFunctionalTest.class);
  48. protected static final String USSD_STRING = "*133#";
  49. protected static final String USSD_MENU = "Select 1)Wallpaper 2)Ringtone 3)Games";
  50. private static final int _WAIT_TIMEOUT = 5000;
  51. private MAPStackImpl stack1;
  52. private MAPStackImpl stack2;
  53. private SccpAddress peer1Address;
  54. private SccpAddress peer2Address;
  55. private Client client;
  56. private Server server;
  57. @BeforeClass
  58. public void setUpClass() throws Exception {
  59. System.out.println("setUpClass");
  60. }
  61. @AfterClass
  62. public void tearDownClass() throws Exception {
  63. System.out.println("tearDownClass");
  64. }
  65. /*
  66. * (non-Javadoc)
  67. *
  68. * @see junit.framework.TestCase#setUp()
  69. */
  70. @BeforeTest
  71. public void setUp() {
  72. // this.setupLog4j();
  73. System.out.println("setUpTest");
  74. this.sccpStack1Name = "MAPFunctionalTestSccpStack1";
  75. this.sccpStack2Name = "MAPFunctionalTestSccpStack2";
  76. super.setUp();
  77. // this.setupLog4j();
  78. // create some fake addresses.
  79. peer1Address = new SccpAddress(RoutingIndicator.ROUTING_BASED_ON_DPC_AND_SSN, 1, null, 8);
  80. peer2Address = new SccpAddress(RoutingIndicator.ROUTING_BASED_ON_DPC_AND_SSN, 2, null, 8);
  81. this.stack1 = new MAPStackImplWrapper(this.sccpProvider1, 8);
  82. this.stack2 = new MAPStackImplWrapper(this.sccpProvider2, 8);
  83. this.stack1.start();
  84. this.stack2.start();
  85. // create test classes
  86. this.client = new Client(this.stack1, this, peer1Address, peer2Address);
  87. this.server = new Server(this.stack2, this, peer2Address, peer1Address);
  88. }
  89. /*
  90. * (non-Javadoc)
  91. *
  92. * @see junit.framework.TestCase#tearDown()
  93. */
  94. @AfterTest
  95. public void tearDown() {
  96. System.out.println("tearDownTest");
  97. this.stack1.stop();
  98. this.stack2.stop();
  99. super.tearDown();
  100. }
  101. private void setupLog4j() {
  102. InputStream inStreamLog4j = getClass().getResourceAsStream("/log4j.properties");
  103. Properties propertiesLog4j = new Properties();
  104. try {
  105. propertiesLog4j.load(inStreamLog4j);
  106. PropertyConfigurator.configure(propertiesLog4j);
  107. } catch (Exception e) {
  108. e.printStackTrace();
  109. BasicConfigurator.configure();
  110. }
  111. logger.debug("log4j configured");
  112. }
  113. @Test(groups = { "functional.flow","dialog"})
  114. public void testSimpleTCWithDialog() throws Exception {
  115. server.setStep(FunctionalTestScenario.Action_Dialog_A);
  116. client.setStep(FunctionalTestScenario.Action_Dialog_A);
  117. client.actionA();
  118. client.start();
  119. waitForEnd();
  120. assertTrue( client.isFinished(),"Client side did not finish: " + client.getStatus());
  121. assertTrue( server.isFinished(),"Server side did not finish: " + server.getStatus());
  122. }
  123. @Test(groups = { "functional.flow","dialog"})
  124. public void testComplexTCWithDialog() throws Exception {
  125. // this.saveTrafficInFile();
  126. server.reset();
  127. client.reset();
  128. server.setStep(FunctionalTestScenario.Action_Dialog_A);
  129. client.setStep(FunctionalTestScenario.Action_Dialog_A);
  130. client.actionA();
  131. waitForEnd();
  132. assertTrue( client.isFinished(),"Client side did not finish: " + client.getStatus());
  133. assertTrue( server.isFinished(),"Server side did not finish: " + server.getStatus());
  134. server.reset();
  135. client.reset();
  136. server.setStep(FunctionalTestScenario.Action_Dialog_B);
  137. client.setStep(FunctionalTestScenario.Action_Dialog_B);
  138. client.actionB();
  139. waitForEnd();
  140. assertTrue( client.isFinished(),"Client side did not finish: " + client.getStatus());
  141. assertTrue( server.isFinished(),"Server side did not finish: " + server.getStatus());
  142. ((MAPServiceSupplementaryImplWrapper) this.stack2.getMAPProvider().getMAPServiceSupplementary()).setTestMode(1);
  143. server.reset();
  144. client.reset();
  145. server.setStep(FunctionalTestScenario.Action_Dialog_C);
  146. client.setStep(FunctionalTestScenario.Action_Dialog_C);
  147. client.actionB();
  148. waitForEnd();
  149. assertTrue( client.isFinished(),"Client side did not finish: " + client.getStatus());
  150. assertTrue( server.isFinished(),"Server side did not finish: " + server.getStatus());
  151. ((MAPServiceSupplementaryImplWrapper) this.stack2.getMAPProvider().getMAPServiceSupplementary()).setTestMode(0);
  152. server.reset();
  153. client.reset();
  154. server.setStep(FunctionalTestScenario.Action_Dialog_D);
  155. client.setStep(FunctionalTestScenario.Action_Dialog_D);
  156. client.actionB();
  157. waitForEnd();
  158. assertTrue( client.isFinished(),"Client side did not finish: " + client.getStatus());
  159. assertTrue( server.isFinished(),"Server side did not finish: " + server.getStatus());
  160. server.reset();
  161. client.reset();
  162. server.setStep(FunctionalTestScenario.Action_Dialog_E);
  163. client.setStep(FunctionalTestScenario.Action_Dialog_E);
  164. client.actionB();
  165. waitForEnd();
  166. assertTrue( client.isFinished(),"Client side did not finish: " + client.getStatus());
  167. assertTrue( server.isFinished(),"Server side did not finish: " + server.getStatus());
  168. ((MAPProviderImplWrapper) this.stack2.getMAPProvider()).setTestMode(1);
  169. server.reset();
  170. client.reset();
  171. server.setStep(FunctionalTestScenario.Action_Dialog_F);
  172. client.setStep(FunctionalTestScenario.Action_Dialog_F);
  173. client.actionB();
  174. waitForEnd();
  175. assertTrue(client.isFinished(), "Client side did not finish: " + client.getStatus());
  176. assertTrue(server.isFinished(), "Server side did not finish: " + server.getStatus());
  177. ((MAPProviderImplWrapper) this.stack2.getMAPProvider()).setTestMode(0);
  178. server.reset();
  179. client.reset();
  180. server.setStep(FunctionalTestScenario.Action_Dialog_Eri);
  181. client.setStep(FunctionalTestScenario.Action_Dialog_Eri);
  182. client.actionBB();
  183. waitForEnd();
  184. assertTrue(client.isFinished(), "Client side did not finish: " + client.getStatus());
  185. assertTrue(server.isFinished(), "Server side did not finish: " + server.getStatus());
  186. }
  187. @Test(groups = { "functional.flow","dialog"})
  188. public void testComponents() throws Exception {
  189. server.reset();
  190. client.reset();
  191. server.setStep(FunctionalTestScenario.Action_Component_A);
  192. client.setStep(FunctionalTestScenario.Action_Component_A);
  193. client.actionB();
  194. waitForEnd();
  195. assertTrue(client.isFinished(),"Client side did not finish: " + client.getStatus());
  196. assertTrue(server.isFinished(),"Server side did not finish: " + server.getStatus());
  197. server.reset();
  198. client.reset();
  199. server.setStep(FunctionalTestScenario.Action_Component_B);
  200. client.setStep(FunctionalTestScenario.Action_Component_B);
  201. client.actionB();
  202. waitForEnd();
  203. assertTrue(client.isFinished(),"Client side did not finish: " + client.getStatus());
  204. assertTrue(server.isFinished(),"Server side did not finish: " + server.getStatus());
  205. server.reset();
  206. client.reset();
  207. server.setStep(FunctionalTestScenario.Action_Component_D);
  208. client.setStep(FunctionalTestScenario.Action_Component_D);
  209. client.actionB();
  210. waitForEnd();
  211. assertTrue(client.isFinished(),"Client side did not finish: " + client.getStatus());
  212. assertTrue(server.isFinished(),"Server side did not finish: " + server.getStatus());
  213. server.reset();
  214. client.reset();
  215. server.setStep(FunctionalTestScenario.Action_Component_E);
  216. client.setStep(FunctionalTestScenario.Action_Component_E);
  217. client.actionB();
  218. waitForEnd();
  219. assertTrue(client.isFinished(),"Client side did not finish: " + client.getStatus());
  220. assertTrue(server.isFinished(),"Server side did not finish: " + server.getStatus());
  221. server.reset();
  222. client.reset();
  223. server.setStep(FunctionalTestScenario.Action_Component_F);
  224. client.setStep(FunctionalTestScenario.Action_Component_F);
  225. client.actionB();
  226. waitForEnd();
  227. assertTrue(client.isFinished(),"Client side did not finish: " + client.getStatus());
  228. assertTrue(server.isFinished(),"Server side did not finish: " + server.getStatus());
  229. server.reset();
  230. client.reset();
  231. server.setStep(FunctionalTestScenario.Action_Component_G);
  232. client.setStep(FunctionalTestScenario.Action_Component_G);
  233. client.actionB();
  234. waitForEnd();
  235. assertTrue(client.isFinished(),"Client side did not finish: " + client.getStatus());
  236. assertTrue(server.isFinished(),"Server side did not finish: " + server.getStatus());
  237. }
  238. @Test
  239. public void testV1() throws Exception {
  240. server.reset();
  241. client.reset();
  242. server.setStep(FunctionalTestScenario.Action_V1_A);
  243. client.setStep(FunctionalTestScenario.Action_V1_A);
  244. client.actionD();
  245. waitForEnd();
  246. assertTrue(client.isFinished(),"Client side did not finish: " + client.getStatus());
  247. assertTrue(server.isFinished(),"Server side did not finish: " + server.getStatus());
  248. server.reset();
  249. client.reset();
  250. server.setStep(FunctionalTestScenario.Action_V1_B);
  251. client.setStep(FunctionalTestScenario.Action_V1_B);
  252. client.actionD();
  253. waitForEnd();
  254. assertTrue(client.isFinished(),"Client side did not finish: " + client.getStatus());
  255. assertTrue(server.isFinished(),"Server side did not finish: " + server.getStatus());
  256. server.reset();
  257. client.reset();
  258. server.setStep(FunctionalTestScenario.Action_V1_C);
  259. client.setStep(FunctionalTestScenario.Action_V1_C);
  260. client.actionD();
  261. waitForEnd();
  262. assertTrue(client.isFinished(),"Client side did not finish: " + client.getStatus());
  263. assertTrue(server.isFinished(),"Server side did not finish: " + server.getStatus());
  264. server.reset();
  265. client.reset();
  266. server.setStep(FunctionalTestScenario.Action_V1_D);
  267. client.setStep(FunctionalTestScenario.Action_V1_D);
  268. client.actionD();
  269. waitForEnd();
  270. assertTrue(client.isFinished(),"Client side did not finish: " + client.getStatus());
  271. assertTrue(server.isFinished(),"Server side did not finish: " + server.getStatus());
  272. server.reset();
  273. client.reset();
  274. server.setStep(FunctionalTestScenario.Action_V1_E);
  275. client.setStep(FunctionalTestScenario.Action_V1_E);
  276. client.actionD();
  277. waitForEnd();
  278. assertTrue(client.isFinished(),"Client side did not finish: " + client.getStatus());
  279. assertTrue(server.isFinished(),"Server side did not finish: " + server.getStatus());
  280. }
  281. @Test(groups = { "functional.flow","dialog"})
  282. public void testSmsService() throws Exception {
  283. server.reset();
  284. client.reset();
  285. server.setStep(FunctionalTestScenario.Action_Sms_AlertServiceCentre);
  286. client.setStep(FunctionalTestScenario.Action_Sms_AlertServiceCentre);
  287. client.actionC();
  288. waitForEnd();
  289. assertTrue( client.isFinished(),"Client side did not finish: " + client.getStatus());
  290. assertTrue( server.isFinished(),"Server side did not finish: " + server.getStatus());
  291. server.reset();
  292. client.reset();
  293. server.setStep(FunctionalTestScenario.Action_Sms_ForwardSM);
  294. client.setStep(FunctionalTestScenario.Action_Sms_ForwardSM);
  295. client.actionC();
  296. waitForEnd();
  297. assertTrue( client.isFinished(),"Client side did not finish: " + client.getStatus());
  298. assertTrue( server.isFinished(),"Server side did not finish: " + server.getStatus());
  299. server.reset();
  300. client.reset();
  301. server.setStep(FunctionalTestScenario.Action_Sms_MoForwardSM);
  302. client.setStep(FunctionalTestScenario.Action_Sms_MoForwardSM);
  303. client.actionC();
  304. waitForEnd();
  305. assertTrue( client.isFinished(),"Client side did not finish: " + client.getStatus());
  306. assertTrue( server.isFinished(),"Server side did not finish: " + server.getStatus());
  307. server.reset();
  308. client.reset();
  309. server.setStep(FunctionalTestScenario.Action_Sms_MtForwardSM);
  310. client.setStep(FunctionalTestScenario.Action_Sms_MtForwardSM);
  311. client.actionC();
  312. waitForEnd();
  313. assertTrue( client.isFinished(),"Client side did not finish: " + client.getStatus());
  314. assertTrue( server.isFinished(),"Server side did not finish: " + server.getStatus());
  315. server.reset();
  316. client.reset();
  317. server.setStep(FunctionalTestScenario.Action_Sms_ReportSMDeliveryStatus);
  318. client.setStep(FunctionalTestScenario.Action_Sms_ReportSMDeliveryStatus);
  319. client.actionC();
  320. waitForEnd();
  321. assertTrue( client.isFinished(),"Client side did not finish: " + client.getStatus());
  322. assertTrue( server.isFinished(),"Server side did not finish: " + server.getStatus());
  323. server.reset();
  324. client.reset();
  325. server.setStep(FunctionalTestScenario.Action_Sms_SendRoutingInfoForSM);
  326. client.setStep(FunctionalTestScenario.Action_Sms_SendRoutingInfoForSM);
  327. client.actionC();
  328. waitForEnd();
  329. assertTrue( client.isFinished(),"Client side did not finish: " + client.getStatus());
  330. assertTrue( server.isFinished(),"Server side did not finish: " + server.getStatus());
  331. }
  332. @Test(groups = { "functional.flow","dialog"})
  333. public void testMsgLength() throws Exception {
  334. // this.saveTrafficInFile();
  335. server.reset();
  336. client.reset();
  337. server.setStep(FunctionalTestScenario.Action_TestMsgLength_A);
  338. client.setStep(FunctionalTestScenario.Action_TestMsgLength_A);
  339. client.actionE();
  340. waitForEnd();
  341. assertTrue(client.isFinished(),"Client side did not finish: " + client.getStatus());
  342. assertTrue(server.isFinished(),"Server side did not finish: " + server.getStatus());
  343. server.reset();
  344. client.reset();
  345. server.setStep(FunctionalTestScenario.Action_TestMsgLength_B);
  346. client.setStep(FunctionalTestScenario.Action_TestMsgLength_B);
  347. client.actionE();
  348. waitForEnd();
  349. assertTrue(client.isFinished(),"Client side did not finish: " + client.getStatus());
  350. assertTrue(server.isFinished(),"Server side did not finish: " + server.getStatus());
  351. }
  352. @Test(groups = { "functional.flow","dialog"})
  353. public void testA() throws Exception {
  354. // MAPParameterFactory msf = this.stack1.getMAPProvider().getMAPParameterFactory();
  355. // IMEI a1 = msf.createIMEI("12345678901234");
  356. //
  357. // AsnOutputStream aos = new AsnOutputStream();
  358. // a1.encode(aos);
  359. // byte[] buf = aos.toByteArray();
  360. //
  361. // AsnInputStream ais = new AsnInputStream(new ByteArrayInputStream(buf));
  362. // IMEIImpl a11 = new IMEIImpl();
  363. // a11.decode(ais, 0, false, 0, buf.length);
  364. //
  365. // int fff=0;
  366. // fff++;
  367. // MAPParameterFactory msf = this.stack1.getMAPProvider().getMAPParameterFactory();
  368. //
  369. // ISDNAddressString n1 = msf.createISDNAddressString(AddressNature.subscriber_number, NumberingPlan.ISDN, "98765");
  370. // LMSI n2 = msf.createLMSI(new byte[] { 21, 22, 23, 24 });
  371. // ISDNAddressString n3 = msf.createISDNAddressString(AddressNature.network_specific_number, NumberingPlan.land_mobile, "7654321");
  372. //
  373. // LocationInfoWithLMSI a1 = msf.createLocationInfoWithLMSI(n1, n2, MAPFunctionalTest.GetTestExtensionContainer(msf), AdditionalNumberType.msc, n3);
  374. //
  375. // AsnOutputStream aos = new AsnOutputStream();
  376. // a1.encode(aos);
  377. // byte[] buf = aos.toByteArray();
  378. //
  379. // AsnInputStream ais = new AsnInputStream(new ByteArrayInputStream(buf));
  380. // LocationInfoWithLMSIImpl a11 = new LocationInfoWithLMSIImpl();
  381. // a11.decode(ais, 0, false, 0, buf.length);
  382. //
  383. // boolean b1 = MAPFunctionalTest.CheckTestExtensionContainer(a11.getExtensionContainer());
  384. // int fff=0;
  385. // fff++;
  386. // MAPParameterFactory msf = this.stack1.getMAPProvider().getMAPParameterFactory();
  387. // MAPOpenInfoImpl a1 = new MAPOpenInfoImpl();
  388. // a1.setExtensionContainer(MAPFunctionalTest.GetTestExtensionContainer(msf));
  389. // AddressString n1 = msf.createAddressString(AddressNature.subscriber_number, NumberingPlan.ISDN, "1234567");
  390. // AddressString n2 = msf.createAddressString(AddressNature.network_specific_number, NumberingPlan.land_mobile, "7654321");
  391. // a1.setOrigReference(n1);
  392. // a1.setDestReference(n2);
  393. //
  394. // AsnOutputStream aos = new AsnOutputStream();
  395. // a1.encode(aos);
  396. // byte[] buf = aos.toByteArray();
  397. //
  398. // AsnInputStream ais = new AsnInputStream(new ByteArrayInputStream(buf));
  399. // MAPOpenInfoImpl a11 = new MAPOpenInfoImpl();
  400. // int tag = ais.readTag();
  401. // a11.decode(ais);
  402. //
  403. // boolean b1 = MAPFunctionalTest.CheckTestExtensionContainer(a11.getExtensionContainer());
  404. //
  405. // int fff=0;
  406. // fff++;
  407. // MAPParameterFactory msf = this.stack1.getMAPProvider().getMAPParameterFactory();
  408. // ISDNAddressString a1 = msf.createISDNAddressString(AddressNature.subscriber_number, NumberingPlan.ISDN, "98765");
  409. //
  410. // AsnOutputStream aos = new AsnOutputStream();
  411. // a1.encode(aos);
  412. // byte[] buf = aos.toByteArray();
  413. //
  414. // AsnInputStream ais = new AsnInputStream(new ByteArrayInputStream(buf));
  415. // ISDNAddressString a2 = new ISDNAddressStringImpl();
  416. // a2.decode(ais, 0, true, 0, buf.length);
  417. //
  418. // int fff=0;
  419. // fff++;
  420. // MAPParameterFactory msf = this.stack1.getMAPProvider().getMAPParameterFactory();
  421. //
  422. //// AddressString asx = msf.createAddressString(AddressNature.subscriber_number, NumberingPlan.ISDN, "98765");
  423. //// SM_RP_DAImpl sm = (SM_RP_DAImpl)msf.createSM_RP_DA(asx);
  424. //
  425. //// IMSIImpl imsi = (IMSIImpl)msf.createIMSI(250L, 7L, "12345");
  426. //// SM_RP_DAImpl sm = (SM_RP_DAImpl)msf.createSM_RP_DA(imsi);
  427. //
  428. //// byte[] data = new byte[] { 31, 32, 33, 34 };
  429. //// LMSIImpl lmsi = (LMSIImpl)msf.createLMSI(data);
  430. //// SM_RP_DAImpl sm = (SM_RP_DAImpl)msf.createSM_RP_DA(lmsi);
  431. //
  432. //// SM_RP_DAImpl sm = (SM_RP_DAImpl)msf.createSM_RP_DA();
  433. //
  434. //// LMSIImpl lmsi = new LMSIImpl();
  435. //// byte[] data = new byte[] { 31, 32, 33, 34 };
  436. //// lmsi.setData(data);
  437. //// sm.setLMSI(lmsi);
  438. //
  439. // SM_RP_OAImpl sm = (SM_RP_OAImpl)msf.createSM_RP_OA();
  440. //
  441. //// ISDNAddressString msisdn = msf.createISDNAddressString(AddressNature.subscriber_number, NumberingPlan.ISDN, "98765");
  442. //// sm.setMsisdn(msisdn);
  443. //// AddressString serviceCentreAddressOA = msf.createAddressString(AddressNature.subscriber_number, NumberingPlan.ISDN, "98765");
  444. //// sm.setServiceCentreAddressOA(serviceCentreAddressOA);
  445. //
  446. //
  447. // AsnOutputStream aos = new AsnOutputStream();
  448. // sm.encode(aos);
  449. // byte[] buf = aos.toByteArray();
  450. //
  451. // aos.reset();
  452. // aos.writeTag(Tag.CLASS_CONTEXT_SPECIFIC, true, sm.getEnccodingTag());
  453. // aos.writeLength(buf.length);
  454. // aos.write(buf);
  455. // buf = aos.toByteArray();
  456. //
  457. //
  458. // AsnInputStream ais = new AsnInputStream(new ByteArrayInputStream(buf));
  459. // int tag = ais.readTag();
  460. // int length = ais.readLength();
  461. // if (length != ais.available()) {
  462. // int fff = 0;
  463. // }
  464. // byte[] buf2 = new byte[length];
  465. // ais.read(buf2);
  466. // AsnInputStream ais2 = new AsnInputStream(new ByteArrayInputStream(buf2));
  467. //
  468. //// SM_RP_DAImpl sm2 = new SM_RP_DAImpl();
  469. // SM_RP_OAImpl sm2 = new SM_RP_OAImpl();
  470. // sm2.setDecodedTag(tag);
  471. // sm2.decode(ais2);
  472. //
  473. // int iii=0;
  474. // iii++;
  475. // server.reset();
  476. // client.reset();
  477. // server.setStep(FunctionalTestScenario.Action_Component_A);
  478. // client.setStep(FunctionalTestScenario.Action_Component_A);
  479. // client.actionC();
  480. // waitForEnd();
  481. // assertTrue( client.isFinished(),"Client side did not finish: " + client.getStatus());
  482. // assertTrue( server.isFinished(),"Server side did not finish: " + server.getStatus());
  483. }
  484. private void waitForEnd() {
  485. try {
  486. Date startTime = new Date();
  487. while (true) {
  488. if (client.isFinished() && server.isFinished())
  489. break;
  490. Thread.currentThread().sleep(100);
  491. if (new Date().getTime() - startTime.getTime() > _WAIT_TIMEOUT)
  492. break;
  493. // Thread.currentThread().sleep(1000000);
  494. }
  495. } catch (InterruptedException e) {
  496. fail("Interrupted on wait!");
  497. }
  498. }
  499. }