Package org.xmlBlaster.test.classtest.qos

Source Code of org.xmlBlaster.test.classtest.qos.QueryQosFactoryTest

package org.xmlBlaster.test.classtest.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.qos.QueryQosData;
import org.xmlBlaster.util.qos.I_QueryQosFactory;
import org.xmlBlaster.util.qos.HistoryQos;
import org.xmlBlaster.client.qos.GetQos;
import org.xmlBlaster.client.qos.EraseQos;
import org.xmlBlaster.client.qos.SubscribeQos;
import org.xmlBlaster.util.qos.AccessFilterQos;
import org.xmlBlaster.engine.mime.Query;

import junit.framework.*;

/**
* Test I_QueryQosFactory implementations.
* <p />
* <pre>
* java -Djava.compiler= junit.textui.TestRunner -noloading org.xmlBlaster.test.classtest.qos.QueryQosFactoryTest
* </pre>
* @see org.xmlBlaster.util.qos.QueryQosSaxFactory
* @see <a href="http://www.xmlBlaster.org/xmlBlaster/doc/requirements/interface.html" target="others">the xmlBlaster access interface requirement</a>
*/
public class QueryQosFactoryTest extends TestCase {
   private String ME = "QueryQosFactoryTest";
   protected final Global glob;
   private static Logger log = Logger.getLogger(QueryQosFactoryTest.class.getName());
   private String currImpl;
   private I_QueryQosFactory factory;
   static I_QueryQosFactory[] IMPL = {
                   new org.xmlBlaster.util.qos.QueryQosSaxFactory(Global.instance()),
                 };

   public QueryQosFactoryTest(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("***QueryQosFactoryTest: testParse ...");
     
      try {
         String xml =
           "<qos>\n" +
           "   <subscribe id='_subId:1'/>\n" +
           "   <erase forceDestroy='true'/>\n" +
           "   <meta>false</meta>\n" +
           "   <content>false</content>\n" +
           "   <local>false</local>\n" +
           "   <initialUpdate>false</initialUpdate>\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" +
           "</qos>\n";

         QueryQosData qos = factory.readObject(xml);

         assertEquals("", "_subId:1", qos.getSubscriptionId());
         assertEquals("", true, qos.getForceDestroy());
         assertEquals("", false, qos.getWantMeta());
         assertEquals("", false, qos.getWantContent());
         assertEquals("", false, qos.getWantLocal());
         assertEquals("", false, qos.getWantInitialUpdate());
         AccessFilterQos[] filterArr = qos.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("***QueryQosFactoryTest: testParse [SUCCESS]");
   }

   /**
    * Test toXml (parse - createXml - parse again - test)
    */
   public void testToXml() {
      System.out.println("***QueryQosFactoryTest: testToXml ...");
     
      try {
         String xml =
           "<qos>\n" +
           "   <subscribe id='_subId:1'/>\n" +
           "   <erase forceDestroy='true'/>\n" +
           "   <meta>false</meta>\n" +
           "   <content>false</content>\n" +
           "   <local>false</local>\n" +
           "   <initialUpdate>false</initialUpdate>\n" +
           "   <history numEntries='20' newestFirst='false'/>\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" +
           "</qos>\n";
         QueryQosData qos = factory.readObject(xml);
         String newXml = qos.toXml();
         log.info("New XML=" + newXml);
         qos = factory.readObject(newXml);

         assertEquals("", "_subId:1", qos.getSubscriptionId());
         assertEquals("", true, qos.getForceDestroy());
         assertEquals("", false, qos.getWantMeta());
         assertEquals("", false, qos.getWantContent());
         assertEquals("", false, qos.getWantLocal());
         assertEquals("", false, qos.getWantInitialUpdate());
         assertEquals("", 20, qos.getHistoryQos().getNumEntries());
         assertEquals("", false, qos.getHistoryQos().getNewestFirst());
         AccessFilterQos[] filterArr = qos.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("***QueryQosFactoryTest: testToXml [SUCCESS]");
   }

   /**
    * Tests empty xml string
    */
   public void testDefault() {
      System.out.println("***QueryQosFactoryTest: testDefault ...");
     
      try {
         QueryQosData qos = factory.readObject((String)null);
         assertEquals("", null, qos.getSubscriptionId());
         assertEquals("", true, qos.getWantMeta());
         assertEquals("", true, qos.getWantContent());
         assertEquals("", true, qos.getWantLocal());
         assertEquals("", true, qos.getWantInitialUpdate());
         assertEquals("", 1, qos.getHistoryQos().getNumEntries());
         assertEquals("", true, qos.getHistoryQos().getNewestFirst());
         AccessFilterQos[] filterArr = qos.getAccessFilterArr();
         assertTrue("", null == filterArr);
      }
      catch (XmlBlasterException e) {
         fail("testDefault failed: " + e.toString());
      }

      System.out.println("***QueryQosFactoryTest: testDefault [SUCCESS]");
   }


   /**
    * Tests client side EraseQos.
    */
   public void testEraseQos() {
      System.out.println("***QueryQosFactoryTest: EraseQos ...");
     
      try {
         EraseQos eraseQos = new EraseQos(glob);
         eraseQos.setForceDestroy(true);
         System.out.println("EraseQos: " + eraseQos.toXml());
         QueryQosData qos = factory.readObject(eraseQos.toXml());
         assertEquals("", true, qos.getForceDestroy());
      }
      catch (Throwable e) {
         System.out.println("Test failed: " + e.toString());
      }
      System.out.println("***QueryQosFactoryTest: EraseQos [SUCCESS]");
   }

   /**
    * Tests client side SubscribeQos.
    */
   public void testSubscribeQos() {
      System.out.println("***QueryQosFactoryTest: SubscribeQos ...");
     
      try {
         SubscribeQos subscribeQos = new SubscribeQos(glob);
         subscribeQos.setWantContent(false);
         subscribeQos.setSubscriptionId("MyOwnSentSubscribeId");
         HistoryQos hh = new HistoryQos(glob, 33);
         hh.setNewestFirst(false);
         subscribeQos.setHistoryQos(hh);
         subscribeQos.addAccessFilter(new AccessFilterQos(glob, "ContentLenFilter", "1.0", new Query(glob, "800")));
         subscribeQos.addAccessFilter(new AccessFilterQos(glob, "ContentLenFilter2", "3.2", new Query(glob, "a<10")));
         subscribeQos.setPersistent(true);
         System.out.println("SubscribeQos: " + subscribeQos.toXml());

         QueryQosData qos = factory.readObject(subscribeQos.toXml());

         assertEquals("", false, qos.getWantContent());
         assertEquals("", "MyOwnSentSubscribeId", qos.getSubscriptionId());
         assertEquals("", 33, qos.getHistoryQos().getNumEntries());
         assertEquals("", false, qos.getHistoryQos().getNewestFirst());
         AccessFilterQos[] filterArr = qos.getAccessFilterArr();
         assertEquals("", 2, filterArr.length);
         assertEquals("", "ContentLenFilter", filterArr[0].getType());
         assertEquals("", "1.0", filterArr[0].getVersion());
         assertEquals("", "800", filterArr[0].getQuery().toString());
         assertEquals("", "ContentLenFilter2", filterArr[1].getType());
         assertEquals("", "3.2", filterArr[1].getVersion());
         assertEquals("", "a<10", filterArr[1].getQuery().toString());
         assertEquals("", true, qos.getPersistentProp().getValue());
      }
      catch (Throwable e) {
         System.out.println("Test failed: " + e.toString());
      }
      System.out.println("***QueryQosFactoryTest: SubscribeQos [SUCCESS]");
   }

   /**
    * Tests client side GetQos.
    */
   public void testGetQos() {
      System.out.println("***QueryQosFactoryTest: GetQos ...");
     
      try {
         GetQos getQos = new GetQos(glob);
         getQos.setWantContent(false);
         HistoryQos hh = new HistoryQos(glob, 33);
         hh.setNewestFirst(false);
         getQos.setHistoryQos(hh);
         getQos.addAccessFilter(new AccessFilterQos(glob, "ContentLenFilter", "1.0", new Query(glob, "800")));
         getQos.addAccessFilter(new AccessFilterQos(glob, "ContentLenFilter2", "3.2", new Query(glob, "a<10")));
         System.out.println("GetQos: " + getQos.toXml());
         QueryQosData qos = factory.readObject(getQos.toXml());
         assertEquals("", false, qos.getWantContent());
         assertEquals("", 33, qos.getHistoryQos().getNumEntries());
         assertEquals("", false, qos.getHistoryQos().getNewestFirst());
         AccessFilterQos[] filterArr = qos.getAccessFilterArr();
         assertEquals("", 2, filterArr.length);
         assertEquals("", "ContentLenFilter", filterArr[0].getType());
         assertEquals("", "1.0", filterArr[0].getVersion());
         assertEquals("", "800", filterArr[0].getQuery().toString());
         assertEquals("", "ContentLenFilter2", filterArr[1].getType());
         assertEquals("", "3.2", filterArr[1].getVersion());
         assertEquals("", "a<10", filterArr[1].getQuery().toString());
      }
      catch (Throwable e) {
         System.out.println("Test failed: " + e.toString());
      }
      System.out.println("***QueryQosFactoryTest: GetQos [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 QueryQosFactoryTest(glob, "testDefault", i));
         suite.addTest(new QueryQosFactoryTest(glob, "testParse", i));
         suite.addTest(new QueryQosFactoryTest(glob, "testToXml", i));
         suite.addTest(new QueryQosFactoryTest(glob, "testEraseQos", i));
         suite.addTest(new QueryQosFactoryTest(glob, "testSubscribeQos", i));
         suite.addTest(new QueryQosFactoryTest(glob, "testGetQos", i));
      }
      return suite;
   }

   /**
    * <pre>
    *  java org.xmlBlaster.test.classtest.qos.QueryQosFactoryTest
    * </pre>
    */
   public static void main(String args[]) {
      Global glob = new Global(args);
      for (int i=0; i<IMPL.length; i++) {
         QueryQosFactoryTest testSub = new QueryQosFactoryTest(glob, "QueryQosFactoryTest", i);
         testSub.setUp();
         testSub.testDefault();
         testSub.testParse();
         testSub.testToXml();
         testSub.testEraseQos();
         testSub.testSubscribeQos();
         testSub.testGetQos();
         //testSub.tearDown();
      }
   }
}
TOP

Related Classes of org.xmlBlaster.test.classtest.qos.QueryQosFactoryTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.