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