📄 testunsub.java
字号:
/*------------------------------------------------------------------------------Name: TestUnSub.javaProject: xmlBlaster.orgCopyright: xmlBlaster.org, see xmlBlaster-LICENSE fileComment: Demo code for a client using xmlBlasterVersion: $Id: TestUnSub.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.util.XmlBlasterException;import org.xmlBlaster.util.MsgUnit;import org.xmlBlaster.client.I_XmlBlasterAccess;import org.xmlBlaster.client.I_Callback;import org.xmlBlaster.client.qos.ConnectQos;import org.xmlBlaster.client.key.UpdateKey;import org.xmlBlaster.client.qos.UpdateQos;import org.xmlBlaster.client.qos.EraseReturnQos;import org.xmlBlaster.client.qos.PublishReturnQos;import org.xmlBlaster.client.key.SubscribeKey;import org.xmlBlaster.client.key.UnSubscribeKey;import org.xmlBlaster.client.qos.SubscribeQos;import org.xmlBlaster.client.qos.SubscribeReturnQos;import org.xmlBlaster.client.qos.UnSubscribeQos;import org.xmlBlaster.client.qos.UnSubscribeReturnQos;import junit.framework.*;/** * This client tests the method subscribe() with XPath query and with a later unSubscribe(). * <br /> * Multiple identical subscribes shouldn't harm and all following are ignored. * <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.TestUnSub * java junit.swingui.TestRunner org.xmlBlaster.test.qos.TestUnSub * </pre> */public class TestUnSub extends TestCase implements I_Callback{ private static String ME = "TestUnSub"; private final Global glob; private static Logger log = Logger.getLogger(TestUnSub.class.getName()); private boolean messageArrived = false; private String subscribeOid; private String publishOid = ""; private I_XmlBlasterAccess senderConnection; private String senderName; private String senderContent; private String receiverName; // sender/receiver is here the same client private String xpath = "//TestUnSub-AGENT"; private int numReceived = 0; // error checking private final String contentMime = "text/xml"; private final String contentMimeExtended = "1.0"; /** * Constructs the TestUnSub object. * <p /> * @param testName The name used in the test suite * @param loginName The name to login to the xmlBlaster */ public TestUnSub(Global glob, String testName, String loginName) { super(testName); this.glob = glob; this.senderName = loginName; this.receiverName = loginName; } /** * Sets up the fixture (login). * <p /> * Connect to xmlBlaster and login */ protected void setUp() { try { senderConnection = glob.getXmlBlasterAccess(); // Find orb String passwd = "secret"; ConnectQos connectQos = new ConnectQos(glob, senderName, passwd); senderConnection.connect(connectQos, this); // Login to xmlBlaster } catch (Exception e) { log.severe(e.toString()); e.printStackTrace(); } } /** * Tears down the fixture (logout). * <p /> * cleaning up .... erase() the previous message OID and logout */ protected void tearDown() { if (publishOid.length() > 0) { // not for testSubscribeUnSubscribeEmpty String xmlKey = "<?xml version='1.0' encoding='ISO-8859-1' ?>\n" + "<key oid='" + publishOid + "' queryType='EXACT'>\n" + "</key>"; try { EraseReturnQos[] arr = senderConnection.erase(xmlKey, "<qos/>"); assertEquals("Erase", 1, arr.length); } catch(XmlBlasterException e) { fail("Erase XmlBlasterException: " + e.getMessage()); } } senderConnection.disconnect(null); } /** * TEST: Subscribe to messages with XPATH. * <p /> * The returned subscribeOid is checked */ public void subscribeXPath() { if (log.isLoggable(Level.FINE)) log.fine("Subscribing using XPath syntax ..."); String xmlKey = "<?xml version='1.0' encoding='ISO-8859-1' ?>\n" + "<key oid='' queryType='XPATH'>\n" + " " + xpath + "</key>"; String qos = "<qos></qos>"; numReceived = 0; subscribeOid = null; try { subscribeOid = senderConnection.subscribe(xmlKey, qos).getSubscriptionId(); log.info("Success: Subscribe on " + subscribeOid + " done"); } catch(XmlBlasterException e) { log.warning("XmlBlasterException: " + e.getMessage()); assertTrue("subscribe - XmlBlasterException: " + e.getMessage(), false); } assertTrue("returned null subscribeOid", subscribeOid != null); assertTrue("returned subscribeOid is empty", 0 != subscribeOid.length()); } /** * TEST: UnSubscribe to messages with XPATH. * <p /> */ public void unSubscribeXPath() { if (log.isLoggable(Level.FINE)) log.fine("UnSubscribing using XPath syntax ..."); String xmlKey = "<key oid='' queryType='XPATH'>\n" + " " + xpath + "</key>"; String qos = "<qos></qos>"; numReceived = 0; try { senderConnection.unSubscribe(xmlKey, qos); log.info("Success: UnSubscribe with " + xpath + " done"); } catch(XmlBlasterException e) { log.warning("XmlBlasterException: " + e.getMessage()); assertTrue("unSubscribe - XmlBlasterException: " + e.getMessage(), false); } } /** * TEST: UnSubscribe to messages with EXACT oid (which was returned from our XPATH subscription). * <p /> */ public void unSubscribeExact() { if (log.isLoggable(Level.FINE)) log.fine("UnSubscribing using EXACT syntax ..."); String xmlKey = "<key oid='" + subscribeOid + "' queryType='EXACT'>\n" + "</key>"; String qos = "<qos></qos>"; numReceived = 0; try { senderConnection.unSubscribe(xmlKey, qos); log.info("Success: UnSubscribe on " + subscribeOid + " done"); } catch(XmlBlasterException e) { log.warning("XmlBlasterException: " + e.getMessage()); assertTrue("unSubscribe - XmlBlasterException: " + e.getMessage(), false); } } /** * TEST: Construct a message and publish it. * <p /> * The returned publishOid is checked */ public void doPublish() { if (log.isLoggable(Level.FINE)) log.fine("Publishing a message ..."); numReceived = 0; String xmlKey = "<?xml version='1.0' encoding='ISO-8859-1' ?>\n" + "<key oid='' contentMime='" + contentMime + "' contentMimeExtended='" + contentMimeExtended + "'>\n" + " <TestUnSub-AGENT id='192.168.124.10' subId='1' type='generic'>" + " <TestUnSub-DRIVER id='FileProof' pollingFreq='10'>" + " </TestUnSub-DRIVER>"+ " </TestUnSub-AGENT>" + "</key>"; senderContent = "Yeahh, i'm the new content";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -