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

📄 querykeyfactorytest.java

📁 java开源的企业总线.xmlBlaster
💻 JAVA
字号:
package org.xmlBlaster.test.classtest.key;import java.util.logging.Logger;import java.util.logging.Level;import org.xmlBlaster.util.Global;import org.xmlBlaster.util.XmlBlasterException;import org.xmlBlaster.util.key.QueryKeyData;import org.xmlBlaster.util.key.I_QueryKeyFactory;import org.xmlBlaster.util.key.QueryKeySaxFactory;//import org.xmlBlaster.client.key.GetKey;//import org.xmlBlaster.client.key.EraseKey;import org.xmlBlaster.client.key.SubscribeKey;//import org.xmlBlaster.client.key.UnSubscribeKey;import org.xmlBlaster.util.def.Constants;import org.xmlBlaster.util.qos.AccessFilterQos;import org.xmlBlaster.util.key.KeyData;import junit.framework.*;/** * Test I_QueryKeyFactory implementations.  * <p /> * <pre> * java -Djava.compiler= junit.textui.TestRunner -noloading org.xmlBlaster.test.classtest.key.QueryKeyFactoryTest * </pre> * @see org.xmlBlaster.util.key.QueryKeySaxFactory * @see <a href="http://www.xmlBlaster.org/xmlBlaster/doc/requirements/interface.html" target="others">the xmlBlaster access interface requirement</a> */public class QueryKeyFactoryTest extends TestCase {   private String ME = "QueryKeyFactoryTest";   protected final Global glob;   private static Logger log = Logger.getLogger(QueryKeyFactoryTest.class.getName());   private String currImpl;   private I_QueryKeyFactory factory;   static I_QueryKeyFactory[] IMPL = {                    new org.xmlBlaster.util.key.QueryKeySaxFactory(Global.instance()),                 };   public QueryKeyFactoryTest(Global glob, String name, int currImpl) {      super(name);      this.glob = glob;      this.factory = IMPL[currImpl];   }   protected void setUp() {      log.info("Testing parser factory " + factory.getName());   }   /**    * Tries with all known tags    */   public void testParse() {      System.out.println("***QueryKeyFactoryTest: testParse ...");            try {         String xml =            "<key oid='HELLO' contentMime='image/gif' contentMimeExtended='1.0' domain='RUGBY' queryType='" + Constants.XPATH + "'>\n" +           "   <filter type='myPlugin' version='1.0'>a!=100</filter>\n" +           "   <filter type='anotherPlugin' version='1.1'><![CDATA[b<100|a[0]>10]]></filter>\n" +           "   //key\n" +           "</key>\n";         QueryKeyData key = factory.readObject(xml);         assertEquals("", "HELLO", key.getOid());         assertEquals("", Constants.XPATH, key.getQueryType());         assertEquals("Got '" + key.getQueryString() + "'", "//key", key.getQueryString().trim());         assertEquals("", "image/gif", key.getContentMime());         assertEquals("", "1.0", key.getContentMimeExtended());         assertEquals("", "RUGBY", key.getDomain());         AccessFilterQos[] filterArr = key.getAccessFilterArr();         assertEquals("", 2, filterArr.length);         assertEquals("", "myPlugin", filterArr[0].getType());         assertEquals("", "1.0", filterArr[0].getVersion());         assertEquals("", "a!=100", filterArr[0].getQuery().toString());         assertEquals("", "anotherPlugin", filterArr[1].getType());         assertEquals("", "1.1", filterArr[1].getVersion());         assertEquals("", "b<100|a[0]>10", filterArr[1].getQuery().toString());      }      catch (XmlBlasterException e) {         fail("testParse failed: " + e.toString());      }      System.out.println("***QueryKeyFactoryTest: testParse [SUCCESS]");   }   /**    * Tries with all known tags    */   public void testCdata() {      System.out.println("***QueryKeyFactoryTest: testCdata ...");            try {         //String queryData = "<adapter>\n\n<![CDATA[\nHi\n \nworld\n\n]]>\n\n</adapter>";         String queryData = "<database:adapter xmlns:database='http://www.xmlBlaster.org/jdbc'>"+                            "<database:url>jdbc:dbfFile:.</database:url>"+                            "<database:username>joe</database:username>"+                            "<database:password>secret</database:password>"+                            "<database:interaction type='update'></database:interaction>"+                            "<database:command><![CDATA[ DROP TABLE IF EXISTS cars < 100 ]]></database:command>"+                            "<database:connectionlifespan ttl='1'></database:connectionlifespan>"+                            "<database:rowlimit max='1'></database:rowlimit>"+                            "<database:confirmation confirm='true'></database:confirmation>"+                            "</database:adapter>";         String xml =            "<key oid='__sys__jdbc'>\n" +           queryData +           "</key>\n";         QueryKeyData key = factory.readObject(xml);         assertEquals("", "__sys__jdbc", key.getOid());         assertEquals("queryData expected:\n'"+queryData.trim()+"'\n but is\n'"+key.getQueryString().trim()+"'\n",                      queryData.trim(), key.getQueryString().trim());         log.info("Parsed and recreated successfully CDATA section:\n" + key.getQueryString().trim() + "");      }      catch (XmlBlasterException e) {         fail("testCdata failed: " + e.toString());      }      System.out.println("***QueryKeyFactoryTest: testCdata [SUCCESS]");   }   /**    * Tests empty xml string    */   public void testDefault() {      System.out.println("***QueryKeyFactoryTest: testDefault ...");            try {         QueryKeyData key = factory.readObject((String)null);         assertEquals("", (String)null, key.getOid());         assertEquals("", QueryKeyData.QUERYTYPE_DEFAULT, key.getQueryType());         assertEquals("", (String)null, key.getQueryString());         assertEquals("", QueryKeyData.CONTENTMIME_DEFAULT, key.getContentMime());         assertEquals("", (String)null, key.getContentMimeExtended());         assertEquals("", (String)null, key.getDomain());         AccessFilterQos[] filterArr = key.getAccessFilterArr();         assertTrue("", null == filterArr);      }      catch (XmlBlasterException e) {         fail("testDefault failed: " + e.toString());      }      System.out.println("***QueryKeyFactoryTest: testDefault [SUCCESS]");   }   /**    * Test toXml (parse - createXml - parse again - test)    */   public void testToXml() {      System.out.println("***QueryKeyFactoryTest: testToXml ...");            try {         String xml =            "<key oid='HELLO' contentMime='image/gif' contentMimeExtended='1.0' domain='RUGBY' queryType='" + Constants.XPATH + "'>\n" +           "   //key\n" +           "   <filter type='myPlugin' version='1.0'>a!=100</filter>\n" +           "   <filter type='anotherPlugin' version='1.1'><![CDATA[b<100|a[0]>10]]></filter>\n" +           "</key>\n";         QueryKeyData key = factory.readObject(xml);         String newXml = key.toXml();         log.info("New XML=" + newXml);         key = factory.readObject(newXml);         assertEquals("", "HELLO", key.getOid());         assertEquals("", Constants.XPATH, key.getQueryType());         assertEquals("", "//key", key.getQueryString());         assertEquals("", "image/gif", key.getContentMime());         assertEquals("", "1.0", key.getContentMimeExtended());         assertEquals("", "RUGBY", key.getDomain());         AccessFilterQos[] filterArr = key.getAccessFilterArr();         assertEquals("", 2, filterArr.length);         assertEquals("", "myPlugin", filterArr[0].getType());         assertEquals("", "1.0", filterArr[0].getVersion());         assertEquals("", "a!=100", filterArr[0].getQuery().toString());         assertEquals("", "anotherPlugin", filterArr[1].getType());         assertEquals("", "1.1", filterArr[1].getVersion());         assertEquals("", "b<100|a[0]>10", filterArr[1].getQuery().toString());      }      catch (XmlBlasterException e) {         fail("testToXml failed: " + e.toString());      }      System.out.println("***QueryKeyFactoryTest: testToXml [SUCCESS]");   }   /**    * Tests client side SubscribeKey.     */   public void testSubscribeKey() {      System.out.println("***QueryKeyFactoryTest: SubscribeKey ...");            try {         SubscribeKey subscribeKey = new SubscribeKey(glob, "oid");         subscribeKey.setDomain("domain");         subscribeKey.setQueryString("//query");         System.out.println("SubscribeKey: " + subscribeKey.toXml());         QueryKeyData key = factory.readObject(subscribeKey.toXml());         assertEquals("", "oid", key.getOid());         assertEquals("", "domain", key.getDomain());         assertEquals("", "//query", key.getQueryString());         assertEquals("", "XPATH", key.getQueryType()); // The last was setQueryString() so this is the used type      }      catch (Throwable e) {         System.out.println("Test failed: " + e.toString());      }      System.out.println("***QueryKeyFactoryTest: SubscribeKey [SUCCESS]");   }   /**    * Tests client side SubscribeKey.     */   public void testExactSubscribeKey() {      System.out.println("***QueryKeyFactoryTest: testExactSubscribeKey ...");            try {         SubscribeKey subscribeKey = new SubscribeKey(glob, "myOid", "EXACT");         assertEquals("", "myOid", subscribeKey.getOid());         System.out.println("SubscribeKey: " + subscribeKey.toXml());         QueryKeyData key = factory.readObject(subscribeKey.toXml());         assertEquals("", "myOid", key.getOid());         assertEquals("", KeyData.CONTENTMIME_DEFAULT, key.getContentMime());         assertEquals("", KeyData.CONTENTMIMEEXTENDED_DEFAULT, key.getContentMimeExtended());         assertEquals("", (String)null, key.getDomain());         assertEquals("", "EXACT", key.getQueryType());         assertEquals("", (String)null, key.getQueryString());      }      catch (Throwable e) {         System.out.println("Test failed: " + e.toString());      }      try {         SubscribeKey subscribeKey = new SubscribeKey(glob, "//myTag", Constants.XPATH);         subscribeKey.getData().setContentMime("AAA");         subscribeKey.getData().setContentMimeExtended("BBB");         subscribeKey.setDomain("CCC");         assertEquals("", "myOid", subscribeKey.getOid());         System.out.println("SubscribeKey: " + subscribeKey.toXml());         QueryKeyData key = factory.readObject(subscribeKey.toXml());         assertEquals("", (String)null, key.getOid());         assertEquals("", "AAA", key.getContentMime());         assertEquals("", "BBB", key.getContentMimeExtended());         assertEquals("", "CCC", key.getDomain());         assertEquals("", Constants.XPATH, key.getQueryType());         assertEquals("", "//myTag", key.getQueryString());      }      catch (Throwable e) {         System.out.println("Test failed: " + e.toString());      }      System.out.println("***QueryKeyFactoryTest: testExactSubscribeKey [SUCCESS]");   }   /**    * Method is used by TestRunner to load these tests    */   public static Test suite()   {      TestSuite suite= new TestSuite();      Global glob = new Global();      for (int i=0; i<IMPL.length; i++) {         suite.addTest(new QueryKeyFactoryTest(glob, "testDefault", i));         suite.addTest(new QueryKeyFactoryTest(glob, "testParse", i));         suite.addTest(new QueryKeyFactoryTest(glob, "testCdata", i));         suite.addTest(new QueryKeyFactoryTest(glob, "testToXml", i));         suite.addTest(new QueryKeyFactoryTest(glob, "testSubscribeKey", i));         suite.addTest(new QueryKeyFactoryTest(glob, "testExactSubscribeKey", i));         /* TODO:         suite.addTest(new QueryKeyFactoryTest(glob, "testEraseKey", i));         suite.addTest(new QueryKeyFactoryTest(glob, "testGetKey", i));         */      }      return suite;   }   /**    * <pre>    *  java org.xmlBlaster.test.classtest.key.QueryKeyFactoryTest    * </pre>    */   public static void main(String args[]) {      Global glob = Global.instance();      glob.init(args);      for (int i=0; i<IMPL.length; i++) {         QueryKeyFactoryTest testSub = new QueryKeyFactoryTest(glob, "QueryKeyFactoryTest", i);         testSub.setUp();         testSub.testDefault();         testSub.testParse();         testSub.testCdata();         testSub.testToXml();         testSub.testSubscribeKey();         testSub.testExactSubscribeKey();         /* TODO:         testSub.testEraseKey();         testSub.testGetKey();         */         //testSub.tearDown();      }   }}

⌨️ 快捷键说明

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