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

中间件编程

开发平台:

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 TestTPCancel extends TestCase {
  25. private static final Logger log = LogManager.getLogger(TestTPCancel.class);
  26. private RunServer server = new RunServer();
  27. private Connection connection;
  28. public void setUp() throws ConnectionException, ConfigurationException {
  29. server.serverinit();
  30. server.tpadvertiseTestTPCancel();
  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_tpcancel() throws ConnectionException {
  40. log.info("test_tpcancel");
  41. byte[] message = "cancel".getBytes();
  42. int sendlen = message.length + 1;
  43. X_OCTET sendbuf = (X_OCTET) connection.tpalloc("X_OCTET", null);
  44. sendbuf.setByteArray(message);
  45. int cd = connection.tpacall(server.getServiceNameTestTPCancel(),
  46. sendbuf, sendlen, 0);
  47. assertTrue(cd != -1);
  48. assertTrue(cd != 0);
  49. // CANCEL THE REQUEST
  50. int cancelled = connection.tpcancel(cd);
  51. assertTrue(cancelled != -1);
  52. // FAIL TO RETRIEVE THE RESPONSE
  53. try {
  54. Response valToTest = connection.tpgetrply(cd, 0);
  55. assertNull("Could get a reply", valToTest);
  56. fail("Method completed ok");
  57. } catch (ConnectionException e) {
  58. assertTrue(e.getTperrno() == Connection.TPEBADDESC);
  59. }
  60. }
  61. public void test_tpcancel_noreply() throws ConnectionException {
  62. log.info("test_tpcancel_noreply");
  63. byte[] message = "cancel".getBytes();
  64. int sendlen = message.length + 1;
  65. X_OCTET sendbuf = (X_OCTET) connection.tpalloc("X_OCTET", null);
  66. sendbuf.setByteArray(message);
  67. int cd = connection.tpacall(server.getServiceNameTestTPCancel(),
  68. sendbuf, sendlen, Connection.TPNOREPLY);
  69. assertTrue(cd == 0);
  70. // CANCEL THE REQUEST
  71. try {
  72. int cancelled = connection.tpcancel(cd);
  73. fail("Could cancel a TPNOREPLY tpacall");
  74. } catch (ConnectionException e) {
  75. assertTrue(e.getTperrno() == Connection.TPEBADDESC);
  76. }
  77. }
  78. // 8.5
  79. public void test_tpcancel_baddesc() {
  80. log.info("test_tpcancel_baddesc");
  81. // CANCEL THE REQUEST
  82. try {
  83. int cancelled = connection.tpcancel(2);
  84. fail("Could cancel a TPNOREPLY tpacall");
  85. } catch (ConnectionException e) {
  86. assertTrue(e.getTperrno() == Connection.TPEBADDESC);
  87. }
  88. }
  89. }