1 package org.xmlBlaster.test.classtest;
  2 
  3 import org.xmlBlaster.util.Global;
  4 import org.xmlBlaster.util.context.ContextNode;
  5 
  6 import junit.framework.*;
  7 
  8 /**
  9  * java -Djava.compiler= junit.textui.TestRunner -noloading org.xmlBlaster.test.classtest.ContextNodeTest
 10  * @see org.xmlBlaster.util.ContextNode
 11  */
 12 public class ContextNodeTest extends TestCase {
 13    protected Global glob;
 14    int counter = 0;
 15 
 16    public ContextNodeTest(String name) {
 17       super(name);
 18    }
 19 
 20    protected void setUp() {
 21       this.glob = Global.instance();
 22    }
 23 
 24    public void testMerge() {
 25       System.out.println("***ContextNodeTest: testMerge ...");
 26       {
 27          ContextNode root = ContextNode.valueOf("/node/heron/client/joe");
 28          ContextNode other = ContextNode.valueOf("/node/xyz/client/joe/session/1");
 29          ContextNode leaf = root.mergeChildTree(other);
 30          System.out.println("Orig=" + root.getAbsoluteName() + " merge=" + other.getAbsoluteName() + " result=" + leaf.getAbsoluteName());
 31          assertEquals("merge", "/xmlBlaster/node/heron/client/joe/session/1", leaf.getAbsoluteName());
 32       }
 33       {
 34          ContextNode root = ContextNode.valueOf("/node/heron/client/joe/session/1");
 35          ContextNode other = ContextNode.valueOf("/node/xyz/client/joe/session/1");
 36          ContextNode leaf = root.mergeChildTree(other);
 37          System.out.println("Orig=" + root.getAbsoluteName() + " merge=" + other.getAbsoluteName() + " result=" + leaf.getAbsoluteName());
 38          assertEquals("merge", "/xmlBlaster/node/heron/client/joe/session/1", leaf.getAbsoluteName());
 39       }
 40       {
 41          ContextNode root = ContextNode.valueOf("/node/heron/client/joe/session/1");
 42          ContextNode other = ContextNode.valueOf("/node/xyz/service/Pop3Driver");
 43          ContextNode leaf = root.mergeChildTree(other);
 44          System.out.println("Orig=" + root.getAbsoluteName() + " merge=" + other.getAbsoluteName() + " result=" + leaf.getAbsoluteName());
 45          assertEquals("merge", "/xmlBlaster/node/heron/client/joe/session/1/service/Pop3Driver", leaf.getAbsoluteName());
 46       }
 47    }
 48 
 49    public void testParse() {
 50       System.out.println("***ContextNodeTest: testParse ...");
 51       try {
 52          String[] urls = { "/xmlBlaster/node/heron", "/node/heron" };
 53          for (int i=0; i<urls.length; i++) {
 54             String url = urls[i];
 55             System.out.println("Testing syntax parsing: " + url);
 56             ContextNode contextNode = ContextNode.valueOf(url);
 57             assertEquals("", "heron", contextNode.getInstanceName());
 58             assertEquals("", ContextNode.CLUSTER_MARKER_TAG, contextNode.getClassName());
 59             assertTrue("parent not null", contextNode.getParent() == null);
 60             assertEquals("", "/xmlBlaster/node/heron", contextNode.getAbsoluteName());
 61             assertEquals("", "node/heron", contextNode.getRelativeName());
 62          }
 63       }
 64       catch (IllegalArgumentException e) {
 65          fail("testParse failed: " + e.toString());
 66       }
 67 
 68       try {
 69          String[] urls = { "/xmlBlaster/node/heron/client/joe/session/1", "/node/heron" };
 70          for (int i=0; i<urls.length; i++) {
 71             String url = urls[i];
 72             System.out.println("Testing syntax parsing: " + url);
 73             ContextNode contextNode = ContextNode.valueOf(url);
 74             ContextNode cluster = contextNode.getParent(ContextNode.CLUSTER_MARKER_TAG);
 75             assertEquals("", "heron", cluster.getInstanceName());
 76          }
 77       }
 78       catch (IllegalArgumentException e) {
 79          fail("testParse failed: " + e.toString());
 80       }
 81          
 82       try {
 83          String[] urls = { "org.xmlBlaster:nodeClass=node,node=heron",
 84                            "org.xmlBlaster:nodeClass=node,node=heron,connectionClass=connection,connection=jack,queueClass=queue,queue=connection-99" };
 85          for (int i=0; i<urls.length; i++) {
 86             String url = urls[i];
 87             System.out.println("Testing JMX syntax parsing: " + url);
 88             ContextNode contextNode = ContextNode.valueOf(url);
 89             ContextNode cluster = contextNode.getParent(ContextNode.CLUSTER_MARKER_TAG);
 90             assertEquals("", "heron", cluster.getInstanceName());
 91          }
 92       }
 93       catch (IllegalArgumentException e) {
 94          fail("testParse failed: " + e.toString());
 95       }
 96 
 97       try {
 98          String url = "org.xmlBlaster:nodeClass=node,node=\"avalon\",connectionClass=connection,connection=\"jack\",queueClass=queue,queue=\"connection-99\"";
 99          ContextNode newParentNode = ContextNode.valueOf("org.xmlBlaster:nodeClass=node,node=heron");
100          System.out.println("Testing JMX syntax parsing: " + url);
101          ContextNode contextNode = ContextNode.valueOf(url);
102          contextNode.changeParentName(newParentNode);
103          String newString = contextNode.getAbsoluteName(ContextNode.SCHEMA_JMX);
104          assertEquals("", "org.xmlBlaster:nodeClass=node,node=\"heron\",connectionClass=connection,connection=\"jack\",queueClass=queue,queue=\"connection-99\"",
105                           newString);
106       }
107       catch (IllegalArgumentException e) {
108          fail("testParse failed: " + e.toString());
109       }
110 
111       try {
112          ContextNode contextNode = ContextNode.valueOf(null);
113          assertTrue("Expected null", contextNode==ContextNode.ROOT_NODE);
114       }
115       catch (IllegalArgumentException e) {
116          fail(e.toString());
117       }
118          
119       try {
120          ContextNode contextNode = ContextNode.valueOf("");
121          assertTrue("Expected null", contextNode==ContextNode.ROOT_NODE);
122       }
123       catch (IllegalArgumentException e) {
124          fail(e.toString());
125       }
126          
127       System.out.println("***ContextNodeTest: testParse [SUCCESS]");
128    }
129 
130    /**
131     * <pre>
132     *  java org.xmlBlaster.test.classtest.ContextNodeTest
133     * </pre>
134     */
135    public static void main(String args[])
136    {
137       ContextNodeTest testSub = new ContextNodeTest("ContextNodeTest");
138       testSub.setUp();
139       testSub.testParse();
140       testSub.testMerge();
141       //testSub.tearDown();
142    }
143 }


syntax highlighted by Code2HTML, v. 0.9.1