1 package org.xmlBlaster.test.classtest.qos;
  2 
  3 import java.util.logging.Logger;
  4 import org.xmlBlaster.util.Global;
  5 import org.xmlBlaster.util.Timestamp;
  6 import org.xmlBlaster.util.def.PriorityEnum;
  7 import org.xmlBlaster.util.def.MethodName;
  8 import org.xmlBlaster.util.XmlBlasterException;
  9 import org.xmlBlaster.util.qos.MsgQosData;
 10 import org.xmlBlaster.util.qos.MsgQosSaxFactory;
 11 import org.xmlBlaster.util.qos.TopicProperty;
 12 import org.xmlBlaster.client.qos.GetReturnQos;
 13 import org.xmlBlaster.client.qos.UpdateQos;
 14 import org.xmlBlaster.util.qos.address.Destination;
 15 import org.xmlBlaster.util.qos.storage.HistoryQueueProperty;
 16 import org.xmlBlaster.util.qos.storage.MsgUnitStoreProperty;
 17 import org.xmlBlaster.engine.qos.PublishQosServer;
 18 
 19 import junit.framework.*;
 20 
 21 /**
 22  * Test MsgQosSaxFactory. 
 23  * <p />
 24  * All methods starting with 'test' and without arguments are invoked automatically
 25  * <p />
 26  * TODO: http://xmlunit.sourceforge.net/
 27  * <p />
 28  * Invoke: java -Djava.compiler= junit.textui.TestRunner -noloading org.xmlBlaster.test.classtest.qos.MsgQosFactoryTest
 29  * @see org.xmlBlaster.util.qos.MsgQosSaxFactory
 30  * @see <a href="http://www.xmlBlaster.org/xmlBlaster/doc/requirements/interface.publish.html" target="others">the interface.publish requirement</a>
 31  */
 32 public class MsgQosFactoryTest extends TestCase {
 33    protected Global glob;
 34    private static Logger log = Logger.getLogger(MsgQosFactoryTest.class.getName());
 35    int counter = 0;
 36 
 37    public MsgQosFactoryTest(String name) {
 38       super(name);
 39    }
 40 
 41    protected void setUp() {
 42       this.glob = Global.instance();
 43 
 44    }
 45 
 46    /**
 47     * Tries with all known tags
 48     */
 49    public void testParse() {
 50       System.out.println("***MsgQosFactoryTest: testParse ...");
 51       
 52       try {
 53          String xml =
 54             "<qos>\n" +
 55             "   <state id='AA' info='SOMETHING'/>\n" +
 56             "   <subscribable>true</subscribable>\n" +
 57             "   <destination queryType='EXACT' forceQueuing='true'>\n" +
 58             "      Tim\n" +
 59             "   </destination>\n" +
 60             "   <destination queryType='EXACT'>\n" +
 61             "      Ben\n" +
 62             "   </destination>\n" +
 63             /*
 64             "   <destination queryType='XPATH'>\n" +
 65             "      //[GROUP='Manager']\n" +
 66             "   </destination>\n" +
 67             "   <destination queryType='XPATH'>\n" +
 68             "      //ROLE/[@id='Developer']\n" +
 69             "   </destination>\n" +
 70             */
 71             "   <sender>\n" +
 72             "      Gesa\n" +
 73             "   </sender>\n" +
 74             "   <priority>MIN</priority>\n" +
 75             //"   <expiration lifeTime='2400' remainingLife='12000'/>\n" + // uncomment as it is in concurrence to isVolatile
 76             "   <administrative/>\n" +
 77             "   <persistent/>\n" +
 78             "   <forceUpdate>false</forceUpdate>\n" +
 79             "   <route>\n" +
 80             "      <node id='bilbo' stratum='2' timestamp='9408630500' dirtyRead='true'/>\n" +
 81             "      <node id='frodo' stratum='1' timestamp='9408630538' dirtyRead='false'/>\n" +
 82             "      <node id='heron' stratum='0' timestamp='9408630564'/>\n" +
 83             "   </route>\n" +
 84             "</qos>\n";
 85 
 86          MsgQosSaxFactory factory = new MsgQosSaxFactory(glob);
 87          MsgQosData qos = factory.readObject(xml);
 88 
 89          assertEquals("", "AA", qos.getState());
 90          assertEquals("", "SOMETHING", qos.getStateInfo());
 91          assertEquals("", true, qos.isPtp());
 92          assertEquals("", true, qos.isAdministrative());
 93          assertEquals("", true, qos.isPersistent());
 94          assertEquals("", false, qos.isForceUpdate());
 95          assertEquals("", false, qos.isReadonly());
 96          assertEquals("", "Gesa", qos.getSender().getLoginName());
 97 
 98          assertEquals("", 0L, qos.getLifeTime()); // PtP message (because of Destination) is volatile
 99          assertEquals("", -1L, qos.getRemainingLifeStatic());
100 
101          assertEquals("", 3, qos.getRouteNodes().length);
102          assertEquals("", 2, qos.getRouteNodes()[0].getStratum());
103          assertEquals("", 0, qos.getRouteNodes()[2].getStratum());
104          assertEquals("", 9408630500L, qos.getRouteNodes()[0].getTimestamp().getTimestamp());
105          assertEquals("", true, qos.getRouteNodes()[0].getDirtyRead());
106          assertEquals("", false, qos.getRouteNodes()[1].getDirtyRead());
107          assertEquals("", false, qos.getRouteNodes()[2].getDirtyRead());
108 
109          assertEquals("", PriorityEnum.MIN_PRIORITY, qos.getPriority());
110          assertEquals("", false, qos.isFromPersistenceStore());
111          assertTrue("no receive timestamp expected", qos.getRcvTimestamp() == null);
112          assertEquals("", true, qos.isSubscribable());
113          assertEquals("", 2, qos.getDestinations().size());
114          assertEquals("", true, ((Destination)qos.getDestinations().get(0)).forceQueuing());
115          assertEquals("", true, ((Destination)qos.getDestinations().get(0)).isExactAddress());
116          assertEquals("", false, ((Destination)qos.getDestinations().get(0)).isXPathQuery());
117          // XPath is currently not supported
118          //assertEquals("", false, ((Destination)qos.getDestinations().get(2)).isExactAddress());
119          //assertEquals("", true, ((Destination)qos.getDestinations().get(2)).isXPathQuery());
120       }
121       catch (XmlBlasterException e) {
122          fail("testParse failed: " + e.toString());
123       }
124 
125       System.out.println("***MsgQosFactoryTest: testParse [SUCCESS]");
126    }
127 
128    /**
129     * Tries with all known tags
130     */
131    public void testToXml() {
132       System.out.println("***MsgQosFactoryTest: testToXml ...");
133       
134       try {
135          String xml =
136             "<qos>\n" +
137             "   <state id='AA' info='SOMETHING'/>\n" +
138             "   <subscribable>false</subscribable>\n" +
139             "   <destination queryType='EXACT' forceQueuing='true'>\n" +
140             "      Tim\n" +
141             "   </destination>\n" +
142             "   <destination queryType='EXACT'>\n" +
143             "      Ben\n" +
144             "   </destination>\n" +
145             /*
146             "   <destination queryType='XPATH'>\n" +
147             "      //[GROUP='Manager']\n" +
148             "   </destination>\n" +
149             "   <destination queryType='XPATH'>\n" +
150             "      //ROLE/[@id='Developer']\n" +
151             "   </destination>\n" +
152             */
153             "   <sender>\n" +
154             "      Gesa\n" +
155             "   </sender>\n" +
156             "   <priority>MIN</priority>\n" +
157             "   <expiration lifeTime='2400' remainingLife='12000' forceDestroy='true'/>\n" +
158             "   <rcvTimestamp nanos='1234'/>\n" +
159             "   <administrative/>\n" +
160             "   <persistent/>\n" +
161             "   <forceUpdate>false</forceUpdate>\n" +
162             "   <route>\n" +
163             "      <node id='bilbo' stratum='2' timestamp='9408630500' dirtyRead='true'/>\n" +
164             "      <node id='frodo' stratum='1' timestamp='9408630538' dirtyRead='false'/>\n" +
165             "      <node id='heron' stratum='0' timestamp='9408630564'/>\n" +
166             "   </route>\n" +
167             "   <topic readonly='true' destroyDelay='120000' createDomEntry='true'>\n" +
168             "      <persistence relating='msgUnitStore' type='TO' version='3.0' maxEntries='4' maxBytes='40' onOverflow='deadMessage'/>\n" +
169             "      <queue relating='history' type='HI' version='2.0' maxEntries='3' maxBytes='30' onOverflow='deadMessage'/>\n" +
170             "   </topic>\n" +
171             "</qos>\n";
172 
173          MsgQosSaxFactory factory = new MsgQosSaxFactory(glob);
174          MsgQosData qos = factory.readObject(xml);
175          String newXml = qos.toXml();
176          log.info("lifeTime=" + qos.getLifeTimeProp().toXml());
177          log.info("New XML=" + newXml);
178          qos = factory.readObject(newXml);
179 
180          assertEquals("", "AA", qos.getState());
181          assertEquals("", "SOMETHING", qos.getStateInfo());
182          assertEquals("", true, qos.isPtp());
183          assertEquals("", false, qos.isVolatile());
184          assertEquals("", true, qos.isAdministrative());
185          assertEquals("", true, qos.isPersistent());
186          assertEquals("", false, qos.isForceUpdate());
187          assertEquals("", true, qos.isReadonly());
188          assertEquals("", "Gesa", qos.getSender().getLoginName());
189 
190          assertEquals("", 2400L, qos.getLifeTime());
191          assertEquals("", 12000L, qos.getRemainingLifeStatic());
192          assertEquals("", 1234L, qos.getRcvTimestamp().getTimestamp());
193          assertEquals("", true, qos.isForceDestroy());
194          //assertTrue("no receive timestamp expected", qos.getRcvTimestamp() == null);
195 
196          assertEquals("", 3, qos.getRouteNodes().length);
197          assertEquals("", 2, qos.getRouteNodes()[0].getStratum());
198          assertEquals("", 0, qos.getRouteNodes()[2].getStratum());
199          assertEquals("", 9408630500L, qos.getRouteNodes()[0].getTimestamp().getTimestamp());
200          assertEquals("", true, qos.getRouteNodes()[0].getDirtyRead());
201          assertEquals("", false, qos.getRouteNodes()[1].getDirtyRead());
202          assertEquals("", false, qos.getRouteNodes()[2].getDirtyRead());
203 
204          assertEquals("", PriorityEnum.MIN_PRIORITY, qos.getPriority());
205          assertEquals("", false, qos.isFromPersistenceStore());
206          assertEquals("", false, qos.isSubscribable());
207          assertEquals("", 2, qos.getDestinations().size());
208          assertEquals("", true, ((Destination)qos.getDestinations().get(0)).forceQueuing());
209          assertEquals("", true, ((Destination)qos.getDestinations().get(0)).isExactAddress());
210          assertEquals("", false, ((Destination)qos.getDestinations().get(0)).isXPathQuery());
211          // XPATH is currently not supported
212          //assertEquals("", false, ((Destination)qos.getDestinations().get(2)).isExactAddress());
213          //assertEquals("", true, ((Destination)qos.getDestinations().get(2)).isXPathQuery());
214 
215          assertEquals("", true, qos.hasTopicProperty());
216          TopicProperty topicProperty = qos.getTopicProperty();
217          assertEquals("", true, topicProperty.isReadonly());
218          assertEquals("", 120000, topicProperty.getDestroyDelay());
219          assertEquals("", true, topicProperty.createDomEntry());
220 
221          assertEquals("", true, topicProperty.hasMsgUnitStoreProperty());
222          MsgUnitStoreProperty cache = topicProperty.getMsgUnitStoreProperty();
223          assertEquals("", "msgUnitStore", cache.getRelating());
224          assertEquals("", "TO", cache.getType());
225          assertEquals("", "3.0", cache.getVersion());
226          assertEquals("", 4L, cache.getMaxEntries());
227          assertEquals("", 40L, cache.getMaxBytes());
228          assertEquals("", "deadMessage", cache.getOnOverflow());
229 
230          assertEquals("", true, topicProperty.hasHistoryQueueProperty());
231          HistoryQueueProperty hist = topicProperty.getHistoryQueueProperty();
232          assertEquals("", "history", hist.getRelating());
233          assertEquals("", "HI", hist.getType());
234          assertEquals("", "2.0", hist.getVersion());
235          assertEquals("", 3L, hist.getMaxEntries());
236          assertEquals("", 30L, hist.getMaxBytes());
237          assertEquals("", "deadMessage", hist.getOnOverflow());
238       }
239       catch (XmlBlasterException e) {
240          fail("testToXml failed: " + e.toString());
241       }
242 
243       System.out.println("***MsgQosFactoryTest: testToXml [SUCCESS]");
244    }
245 
246    /**
247     * Tries with all known tags
248     */
249    public void testPublishQosServer() {
250       System.out.println("***MsgQosFactoryTest: testPublishQosServer ...");
251       
252       try {
253          String xml =
254             "<qos>\n" +
255             "   <destination queryType='EXACT' forceQueuing='true'>\n" +
256             "      Tim\n" +
257             "   </destination>\n" +
258             "   <destination queryType='EXACT'>\n" +
259             "      Ben\n" +
260             "   </destination>\n" +
261             /*
262             "   <destination queryType='XPATH'>\n" +
263             "      //[GROUP='Manager']\n" +
264             "   </destination>\n" +
265             "   <destination queryType='XPATH'>\n" +
266             "      //ROLE/[@id='Developer']\n" +
267             "   </destination>\n" +
268             */
269             "   <sender>\n" +
270             "      Gesa\n" +
271             "   </sender>\n" +
272             "   <priority>7</priority>\n" +
273             "   <expiration lifeTime='2400' remainingLife='12000'/>\n" +
274             "   <persistent/>\n" +
275             "   <forceUpdate>false</forceUpdate>\n" +
276             "   <route>\n" +
277             "      <node id='bilbo' stratum='2' timestamp='9408630500' dirtyRead='true'/>\n" +
278             "      <node id='frodo' stratum='1' timestamp='9408630538' dirtyRead='false'/>\n" +
279             "      <node id='heron' stratum='0' timestamp='9408630564'/>\n" +
280             "   </route>\n" +
281             "</qos>\n";
282 
283          PublishQosServer qos = new PublishQosServer(new org.xmlBlaster.engine.ServerScope(), xml);
284 
285          assertEquals("", true, qos.isSubscribable());
286          assertEquals("", true, qos.isPtp());
287          assertEquals("", false, qos.isVolatile());
288          assertEquals("", true, qos.isPersistent());
289          assertEquals("", false, qos.isForceUpdate());
290          assertEquals("", false, qos.isReadonly());
291          assertEquals("", "Gesa", qos.getSender().getLoginName());
292 
293          assertEquals("", 3, qos.getRouteNodes().length);
294          assertEquals("", 2, qos.getRouteNodes()[0].getStratum());
295          assertEquals("", 0, qos.getRouteNodes()[2].getStratum());
296          assertEquals("", 9408630500L, qos.getRouteNodes()[0].getTimestamp().getTimestamp());
297          assertEquals("", true, qos.getRouteNodes()[0].getDirtyRead());
298          assertEquals("", false, qos.getRouteNodes()[1].getDirtyRead());
299          assertEquals("", false, qos.getRouteNodes()[2].getDirtyRead());
300 
301          assertEquals("", PriorityEnum.HIGH_PRIORITY, qos.getPriority());
302          assertEquals("", false, qos.isFromPersistenceStore());
303          Timestamp timestamp = new Timestamp();
304          assertTrue("timestamp.getTimestamp()="+timestamp.getTimestamp()+" qos.getRcvTimestamp().getTimestamp()="+qos.getRcvTimestamp().getTimestamp() , timestamp.getTimestamp() > qos.getRcvTimestamp().getTimestamp());
305          assertTrue("timestamp.getTimestamp()="+timestamp.getTimestamp()+" qos.getRcvTimestamp().getTimestamp()="+qos.getRcvTimestamp().getTimestamp() , timestamp.getTimestamp() < (qos.getRcvTimestamp().getTimestamp()+10000000));
306          assertEquals("", 2, qos.getDestinations().size());
307          assertEquals("", true, ((Destination)qos.getDestinations().get(0)).forceQueuing());
308       }
309       catch (XmlBlasterException e) {
310          fail("testPublishQosServer failed: " + e.toString());
311       }
312 
313       System.out.println("***MsgQosFactoryTest: testPublishQosServer [SUCCESS]");
314    }
315 
316    /**
317     * Tries with all known tags
318     */
319    public void testGetReturnQos() {
320       System.out.println("***MsgQosFactoryTest: testGetReturnQos ...");
321       
322       try {
323          Timestamp timestamp = new Timestamp();
324          String xml =
325             "<qos>\n" +
326             "   <destination queryType='EXACT' forceQueuing='true'>\n" +
327             "      Tim\n" +
328             "   </destination>\n" +
329             "   <destination queryType='EXACT'>\n" +
330             "      Ben\n" +
331             "   </destination>\n" +
332             /*
333             "   <destination queryType='XPATH'>\n" +
334             "      //[GROUP='Manager']\n" +
335             "   </destination>\n" +
336             "   <destination queryType='XPATH'>\n" +
337             "      //ROLE/[@id='Developer']\n" +
338             "   </destination>\n" +
339             */
340             "   <sender>\n" +
341             "      Gesa\n" +
342             "   </sender>\n" +
343             "   <priority>7</priority>\n" +
344             "   <expiration lifeTime='2400' remainingLife='12000'/>\n" +
345             "   <rcvTimestamp nanos='" + timestamp.getTimestamp() + "'/>\n" + // if from persistent store
346             "   <persistent/>\n" +
347             "   <forceUpdate>false</forceUpdate>\n" +
348             "   <route>\n" +
349             "      <node id='bilbo' stratum='2' timestamp='9408630500' dirtyRead='true'/>\n" +
350             "      <node id='frodo' stratum='1' timestamp='9408630538' dirtyRead='false'/>\n" +
351             "      <node id='heron' stratum='0' timestamp='9408630564'/>\n" +
352             "   </route>\n" +
353             "</qos>\n";
354 
355          GetReturnQos qos = new GetReturnQos(glob, xml);
356 
357          assertEquals("", false, qos.isVolatile());
358          assertEquals("", true, qos.isPersistent());
359          assertEquals("", false, qos.isReadonly());
360          assertEquals("", "Gesa", qos.getSender().getLoginName());
361 
362          assertEquals("", 3, qos.getRouteNodes().length);
363          assertEquals("", 2, qos.getRouteNodes()[0].getStratum());
364          assertEquals("", 0, qos.getRouteNodes()[2].getStratum());
365          assertEquals("", 9408630500L, qos.getRouteNodes()[0].getTimestamp().getTimestamp());
366          assertEquals("", true, qos.getRouteNodes()[0].getDirtyRead());
367          assertEquals("", false, qos.getRouteNodes()[1].getDirtyRead());
368          assertEquals("", false, qos.getRouteNodes()[2].getDirtyRead());
369 
370          assertEquals("", PriorityEnum.HIGH_PRIORITY, qos.getPriority());
371          assertEquals("", timestamp.getTimestamp(), qos.getRcvTimestamp().getTimestamp());
372       }
373       catch (XmlBlasterException e) {
374          fail("testGetReturnQos failed: " + e.toString());
375       }
376 
377       System.out.println("***MsgQosFactoryTest: testGetReturnQos [SUCCESS]");
378    }
379 
380    /**
381     * Tries with all known tags
382     */
383    public void testUpdateQos() {
384       System.out.println("***MsgQosFactoryTest: testUpdateQos ...");
385       
386       try {
387          Timestamp timestamp = new Timestamp();
388          String xml =
389             "<qos>\n" +
390             "   <destination queryType='EXACT' forceQueuing='true'>\n" +
391             "      Tim\n" +
392             "   </destination>\n" +
393             "   <destination queryType='EXACT'>\n" +
394             "      Ben\n" +
395             "   </destination>\n" +
396             /*
397             "   <destination queryType='XPATH'>\n" +
398             "      //[GROUP='Manager']\n" +
399             "   </destination>\n" +
400             "   <destination queryType='XPATH'>\n" +
401             "      //ROLE/[@id='Developer']\n" +
402             "   </destination>\n" +
403             */
404             "   <sender>\n" +
405             "      Gesa\n" +
406             "   </sender>\n" +
407             "   <priority>7</priority>\n" +
408             "   <expiration lifeTime='2400' remainingLife='12000'/>\n" +
409             "   <rcvTimestamp nanos='" + timestamp.getTimestamp() + "'/>\n" + // if from persistent store
410             "   <persistent/>\n" +
411             "   <forceUpdate>false</forceUpdate>\n" +
412             "   <route>\n" +
413             "      <node id='bilbo' stratum='2' timestamp='9408630500' dirtyRead='true'/>\n" +
414             "      <node id='frodo' stratum='1' timestamp='9408630538' dirtyRead='false'/>\n" +
415             "      <node id='heron' stratum='0' timestamp='9408630564'/>\n" +
416             "   </route>\n" +
417             "   <topic readonly='true'/>\n" +
418             "</qos>\n";
419 
420          UpdateQos qos = new UpdateQos(glob, xml);
421 
422          assertEquals("", true, qos.isSubscribable());
423          assertEquals("", true, qos.isPtp());
424          assertEquals("", false, qos.isVolatile());
425          assertEquals("", true, qos.isPersistent());
426          assertEquals("", true, qos.isReadonly());
427          assertEquals("", "Gesa", qos.getSender().getLoginName());
428 
429          assertEquals("", 3, qos.getRouteNodes().length);
430          assertEquals("", 2, qos.getRouteNodes()[0].getStratum());
431          assertEquals("", 0, qos.getRouteNodes()[2].getStratum());
432          assertEquals("", 9408630500L, qos.getRouteNodes()[0].getTimestamp().getTimestamp());
433          assertEquals("", true, qos.getRouteNodes()[0].getDirtyRead());
434          assertEquals("", false, qos.getRouteNodes()[1].getDirtyRead());
435          assertEquals("", false, qos.getRouteNodes()[2].getDirtyRead());
436 
437          assertEquals("", PriorityEnum.HIGH_PRIORITY, qos.getPriority());
438          assertEquals("", timestamp.getTimestamp(), qos.getRcvTimestamp().getTimestamp());
439       }
440       catch (XmlBlasterException e) {
441          fail("testUpdateQos failed: " + e.toString());
442       }
443 
444       System.out.println("***MsgQosFactoryTest: testUpdateQos [SUCCESS]");
445    }
446 
447    /**
448     * Tests given rcvTimestamp
449     */
450    public void testFromPersistentStore() {
451       System.out.println("***MsgQosFactoryTest: testFromPersistentStore ...");
452       
453       try {
454          Timestamp timestamp = new Timestamp();
455          String xml =
456             "<qos>\n" +
457             "   <rcvTimestamp nanos='" + timestamp.getTimestamp() + "'/>\n" + // if from persistent store
458             "</qos>\n";
459 
460          MsgQosSaxFactory factory = new MsgQosSaxFactory(glob);
461          MsgQosData qos = factory.readObject(xml);
462 
463          assertEquals("", timestamp.getTimestamp(), qos.getRcvTimestamp().getTimestamp());
464       }
465       catch (XmlBlasterException e) {
466          fail("testFromPersistentStore failed: " + e.toString());
467       }
468 
469       System.out.println("***MsgQosFactoryTest: testFromPersistentStore [SUCCESS]");
470    }
471 
472    /**
473     * Tests given administrative
474     */
475    public void testAdministrative() {
476       System.out.println("***MsgQosFactoryTest: testAdministrative ...");
477       
478       //try {
479          MsgQosData msgQosData = new MsgQosData(glob, MethodName.PUBLISH);
480          msgQosData.setAdministrative(true);
481          assertEquals("", PriorityEnum.MAX_PRIORITY.getInt(), msgQosData.getPriority().getInt());
482          String xml = msgQosData.toXml();
483          /*
484             "<qos>\n" +
485             "   <priority>MAX</priority>\n" +
486             "   <administrative/>\n" +
487             "</qos>\n";
488          */
489          log.info("Created administrative publish" + xml);
490          assertTrue("Missing administrative in " + xml, xml.indexOf("<administrative/>") > -1);
491          assertTrue("Wrong priority in " + xml, xml.indexOf("9") > -1 || xml.indexOf("MAX") > -1 );
492 
493       //}
494       //catch (XmlBlasterException e) {
495       //   fail("testAdministrative failed: " + e.toString());
496       //}
497 
498       System.out.println("***MsgQosFactoryTest: testAdministrative [SUCCESS]");
499    }
500 
501    /**
502     * Tests empty xml string
503     */
504    public void testDefault() {
505       System.out.println("***MsgQosFactoryTest: testDefault ...");
506       
507       try {
508          MsgQosSaxFactory factory = new MsgQosSaxFactory(glob);
509          MsgQosData qos = factory.readObject((String)null);
510          //qos.addRouteInfo(new RouteInfo(new NodeId("master"), 0, new Timestamp(9408630587L)));
511          assertEquals("", true, qos.isSubscribable());
512          assertEquals("", false, qos.isPtp());
513          assertEquals("", false, qos.isVolatile());
514          assertEquals("", false, qos.isAdministrative());
515          assertEquals("", false, qos.isPersistent());
516          assertEquals("", true, qos.isForceUpdate());
517          assertEquals("", false, qos.isReadonly());
518          assertEquals("", null, qos.getSender());
519          assertEquals("", 0, qos.getRouteNodes().length);
520          assertEquals("", PriorityEnum.NORM_PRIORITY, qos.getPriority());
521          assertEquals("", false, qos.isFromPersistenceStore());
522          assertTrue("", qos.getRcvTimestamp() == null);
523          assertEquals("", null, qos.getDestinations());
524       }
525       catch (XmlBlasterException e) {
526          fail("testDefault failed: " + e.toString());
527       }
528 
529       System.out.println("***MsgQosFactoryTest: testDefault [SUCCESS]");
530    }
531 
532    /**
533     * <pre>
534     *  java org.xmlBlaster.test.classtest.qos.MsgQosFactoryTest
535     * </pre>
536     */
537    public static void main(String args[])
538    {
539       MsgQosFactoryTest testSub = new MsgQosFactoryTest("MsgQosFactoryTest");
540       testSub.setUp();
541       testSub.testParse();
542       testSub.testToXml();
543       testSub.testFromPersistentStore();
544       testSub.testAdministrative();
545       testSub.testPublishQosServer();
546       testSub.testGetReturnQos();
547       testSub.testUpdateQos();
548       testSub.testDefault();
549       //testSub.tearDown();
550    }
551 }


syntax highlighted by Code2HTML, v. 0.9.1