TestTimeToLive.java
上传用户:xfwatch
上传日期:2020-12-14
资源大小:872k
文件大小:4k
源码类别:

中间件编程

开发平台:

Java

  1. /*
  2.  * JBoss, Home of Professional Open Source
  3.  * Copyright 2008, Red Hat, Inc., and others contributors as indicated
  4.  * by the @authors tag. All rights reserved.
  5.  * See the copyright.txt in the distribution for a
  6.  * full listing of individual contributors.
  7.  * This copyrighted material is made available to anyone wishing to use,
  8.  * modify, copy, or redistribute it subject to the terms and conditions
  9.  * of the GNU Lesser General Public License, v. 2.1.
  10.  * This program is distributed in the hope that it will be useful, but WITHOUT A
  11.  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
  12.  * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
  13.  * You should have received a copy of the GNU Lesser General Public License,
  14.  * v.2.1 along with this distribution; if not, write to the Free Software
  15.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
  16.  * MA  02110-1301, USA.
  17.  */
  18. package org.jboss.blacktie.jatmibroker.xatmi;
  19. import junit.framework.TestCase;
  20. import org.apache.log4j.LogManager;
  21. import org.apache.log4j.Logger;
  22. import org.jboss.blacktie.jatmibroker.RunServer;
  23. import org.jboss.blacktie.jatmibroker.core.conf.ConfigurationException;
  24. public class TestTimeToLive extends TestCase {
  25. private static final Logger log = LogManager
  26. .getLogger(TestTimeToLive.class);
  27. private RunServer server = new RunServer();
  28. private Connection connection;
  29. public void setUp() throws ConnectionException, ConfigurationException {
  30. server.serverinit();
  31. ConnectionFactory connectionFactory = ConnectionFactory
  32. .getConnectionFactory();
  33. connection = connectionFactory.getConnection();
  34. }
  35. public void tearDown() throws ConnectionException, ConfigurationException {
  36. connection.close();
  37. server.serverdone();
  38. }
  39. public void test_call_ttl() throws ConnectionException {
  40. log.info("test_call_ttl");
  41. server.tpadvertiseTTL();
  42. try {
  43. log.info("send first message");
  44. String toSend = "test_call_ttl_1";
  45. int sendlen = toSend.length() + 1;
  46. X_OCTET sendbuf = (X_OCTET) connection.tpalloc("X_OCTET", null);
  47. sendbuf.setByteArray(toSend.getBytes());
  48. Response rcvbuf = connection.tpcall(server.getServiceNameTTL(),
  49. sendbuf, sendlen, 0);
  50. fail("Expected TPETIME, got a buffer with rval: "
  51. + rcvbuf.getRval());
  52. } catch (ConnectionException e) {
  53. if (e.getTperrno() != Connection.TPETIME) {
  54. fail("Expected TPETIME, got: " + e.getTperrno());
  55. }
  56. }
  57. try {
  58. log.info("send second message");
  59. String toSend = "test_call_ttl_2";
  60. int sendlen = toSend.length() + 1;
  61. X_OCTET sendbuf = (X_OCTET) connection.tpalloc("X_OCTET", null);
  62. sendbuf.setByteArray(toSend.getBytes());
  63. Response rcvbuf = connection.tpcall(server.getServiceNameTTL(),
  64. sendbuf, sendlen, 0);
  65. fail("Expected TPETIME, got a buffer with rval: "
  66. + rcvbuf.getRval());
  67. } catch (ConnectionException e) {
  68. if (e.getTperrno() != Connection.TPETIME) {
  69. fail("Expected TPETIME, got: " + e.getTperrno());
  70. }
  71. }
  72. try {
  73. log.info("wait 10 second for first message process");
  74. Thread.sleep(10 * 1000);
  75. log.info("wait done");
  76. } catch (Exception e) {
  77. log.warn("sleep exception " + e);
  78. }
  79. try {
  80. String toSend = "counter";
  81. int sendlen = toSend.length() + 1;
  82. X_OCTET sendbuf = (X_OCTET) connection.tpalloc("X_OCTET", null);
  83. sendbuf.setByteArray(toSend.getBytes());
  84. Response rcvbuf = connection.tpcall(server.getServiceNameTTL(),
  85. sendbuf, sendlen, 0);
  86. assertTrue(rcvbuf != null);
  87. assertTrue(rcvbuf.getBuffer() != null);
  88. assertTrue(((X_OCTET) rcvbuf.getBuffer()).getByteArray() != null);
  89. byte[] received = ((X_OCTET) rcvbuf.getBuffer()).getByteArray();
  90. log.info("received length is " + received.length);
  91. String counter = new String(received);
  92. log.info("get message counter of TTL is " + counter);
  93. assertTrue(received[0] == '1');
  94. } catch (ConnectionException e) {
  95. fail("UnExpected exception, got: " + e);
  96. }
  97. }
  98. }