⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testget.java

📁 java开源的企业总线.xmlBlaster
💻 JAVA
字号:
/*------------------------------------------------------------------------------Name:      TestGet.javaProject:   xmlBlaster.orgCopyright: xmlBlaster.org, see xmlBlaster-LICENSE fileComment:   Testing publish()Version:   $Id: TestGet.java 14833 2006-03-06 21:38:58Z laghi $------------------------------------------------------------------------------*/package org.xmlBlaster.test.qos;import java.util.logging.Logger;import java.util.logging.Level;import org.xmlBlaster.util.Global;import org.xmlBlaster.client.qos.ConnectQos;import org.xmlBlaster.util.XmlBlasterException;import org.xmlBlaster.client.qos.GetReturnQos;import org.xmlBlaster.client.qos.EraseReturnQos;import org.xmlBlaster.client.qos.PublishQos;import org.xmlBlaster.client.I_XmlBlasterAccess;import org.xmlBlaster.util.MsgUnit;import junit.framework.*;/** * This client tests the synchronous method get() with its different qos variants. * <p> * This client may be invoked multiple time on the same xmlBlaster server, * as it cleans up everything after his tests are done. * <p> * Invoke examples:<br /> * <pre> *    java junit.textui.TestRunner org.xmlBlaster.test.qos.TestGet *    java junit.swingui.TestRunner org.xmlBlaster.test.qos.TestGet * </pre> */public class TestGet extends TestCase{   private static String ME = "TestGet";   private final Global glob;   private static Logger log = Logger.getLogger(TestGet.class.getName());   private String publishOid = "TestGet";   private I_XmlBlasterAccess connection;   private String loginName;   private String senderContent = "A test message";   /**    * Constructs the TestGet object.    * <p />    * @param testName  The name used in the test suite    * @param loginName The name to login to the xmlBlaster    */   public TestGet(Global glob, String testName, String loginName)   {      super(testName);      this.glob = glob;      this.loginName = loginName;   }   /**    * Sets up the fixture.    * <p />    * Connect to xmlBlaster and login    */   protected void setUp()   {      try {         connection = glob.getXmlBlasterAccess(); // Find orb         String passwd = "secret";         ConnectQos qos = new ConnectQos(glob, loginName, passwd); // == "<qos></qos>";         // Login to xmlBlaster, don't create a callback server         connection.connect(qos, null);      }      catch (Exception e) {          log.severe(e.toString());          e.printStackTrace();      }   }   /**    * Tears down the fixture.    * <p />    * cleaning up .... erase() the previous message OID and logout    */   protected void tearDown()   {      connection.disconnect(null);      // Give the server some millis to finish the iiop handshake ...      try { Thread.sleep(200); } catch (InterruptedException e) {}      log.info("Success, logged out");   }   /**    * TEST: Get an not existing and an existing message    * <p />    * The returned content is checked    */   public void testGet()   {      if (log.isLoggable(Level.FINE)) log.fine("1. Get a not existing message ...");      try {         String xmlKey = "<key oid='" + publishOid + "' queryType='EXACT'></key>";         String qos = "<qos></qos>";         MsgUnit[] msgArr = connection.get(xmlKey, qos);         if (msgArr.length > 0) {            log.severe("Received " + msgArr.length + " unexpected messages");            for (int i=0; i<msgArr.length; i++) {               log.severe("Wrong message is " + msgArr[i].toXml());            }            assertTrue("get of not existing message is not possible", false);         }         else            log.info("Success, got zero messages when trying to get unknown message");      } catch(XmlBlasterException e) {         log.severe("get of not existing message should not throw an exception");         //System.exit(1);         assertTrue("get of not existing message should not throw an exception", false);         //log.info("Success, got XmlBlasterException for trying to get unknown message: " + e.getMessage());      }      if (log.isLoggable(Level.FINE)) log.fine("2. Publish a message ...");      try {         String xmlKey = "<key oid='" + publishOid + "' contentMime='text/plain'>\n</key>";         PublishQos qosWrapper = new PublishQos(glob); // the same as "<qos></qos>"         MsgUnit msgUnit = new MsgUnit(xmlKey, senderContent.getBytes(), qosWrapper.toXml());         connection.publish(msgUnit);         log.info("Success, published a message");      } catch(XmlBlasterException e) {         assertTrue("publish - XmlBlasterException: " + e.getMessage(), false);      }      if (log.isLoggable(Level.FINE)) log.fine("3. Get an existing message ...");      try {         String xmlKey = "<key oid='" + publishOid + "' queryType='EXACT'></key>";         String qos = "<qos></qos>";         MsgUnit[] msgArr = connection.get(xmlKey, qos);                  assertEquals("Got wrong number of messages", 1, msgArr.length);         log.info("Success, got the message '" + msgArr[0].getKey() + "'");         if (log.isLoggable(Level.FINEST)) log.finest(msgArr[0].toXml());         GetReturnQos getQos = new GetReturnQos(glob, msgArr[0].getQos());         assertEquals("Sender is corrupted", loginName, getQos.getSender().getLoginName());         log.info("Get success from sender " + getQos.getSender());                  assertEquals("Corrupted content", senderContent, new String(msgArr[0].getContent()));      } catch(XmlBlasterException e) {         log.severe("XmlBlasterException for trying to get a message: " + e.getMessage());         assertTrue("Couldn't get() an existing message", false);      }      // TODO: We should use the helpers GetKey and GetQos:      String xmlKey = "<key oid='" + publishOid + "' queryType='EXACT'>\n" +                      "</key>";      String qos = "<qos></qos>";      try {         EraseReturnQos[] arr = connection.erase(xmlKey, qos);         if (arr.length != 1) {            log.severe("Erased " + arr.length + " messages:");            fail("Message " + publishOid + " was not erased");         }         log.info("Success, erased a message");      } catch(XmlBlasterException e) { log.severe("XmlBlasterException: " + e.getMessage()); }   }   /**    * LOAD TEST: get 200 times a not existing message    */   public void testGetMany()   {      int num = glob.getProperty().get("numTries", 5);      log.info("Get " + num + " not existing messages ...");      String xmlKey = "<key oid='NotExistingMessage' queryType='EXACT'></key>";      String qos = "<qos></qos>";      for (int ii=0; ii<num; ii++) {         try {            MsgUnit[] msgArr = connection.get(xmlKey, qos);            if (msgArr.length > 0)               assertTrue("get() of not existing message is not possible", false);         } catch(XmlBlasterException e) {            assertTrue("get() of not existing message should not throw an Exception: " + e.toString(), false);            // log.info("Success, got XmlBlasterException for trying to get unknown message: " + e.getMessage());         }      }      log.info("Get " + num + " not existing messages done");   }   /**    * Method is used by TestRunner to load these tests    */   public static Test suite()   {       TestSuite suite= new TestSuite();       String loginName = "Tim";       Global glob = new Global();       suite.addTest(new TestGet(glob, "testGet", loginName));       suite.addTest(new TestGet(glob, "testGetMany", loginName));       return suite;   }   /**    * Invoke: java org.xmlBlaster.test.qos.TestGet    * @deprecated Use the TestRunner from the testsuite to run it:<p />    * <pre>   java -Djava.compiler= junit.textui.TestRunner org.xmlBlaster.test.qos.TestGet</pre>    */   public static void main(String args[])   {      Global glob = new Global();      if (glob.init(args) != 0) {         System.out.println(ME + " Init failed");         System.exit(1);      }      TestGet testSub = new TestGet(glob, "TestGet", "Tim");      testSub.setUp();      testSub.testGet();      testSub.testGetMany();      testSub.tearDown();   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -