1 package org.xmlBlaster.test.classtest;
2
3 import org.xmlBlaster.util.Global;
4 import org.xmlBlaster.util.SessionName;
5 import org.xmlBlaster.util.cluster.NodeId;
6 import org.xmlBlaster.util.context.ContextNode;
7
8 import junit.framework.*;
9
10 /**
11 * java -Djava.compiler= junit.textui.TestRunner -noloading org.xmlBlaster.test.classtest.SessionNameTest
12 * @see org.xmlBlaster.util.SessionName
13 */
14 public class SessionNameTest extends TestCase {
15 protected Global glob;
16 int counter = 0;
17
18 public SessionNameTest(String name) {
19 super(name);
20 }
21
22 protected void setUp() {
23 this.glob = Global.instance();
24 }
25
26 public void testMatch() {
27 System.out.println("***SessionNameTest: testMatch ...");
28 try {
29 SessionName sessionName = new SessionName(glob, "client/jack/session/2");
30 assertTrue("", sessionName.matchRelativeName("client/*/session/*"));
31 assertTrue("", sessionName.matchRelativeName("client/*/session/2"));
32 assertTrue("", sessionName.matchRelativeName("client/jack/session/*"));
33 assertTrue("", sessionName.matchRelativeName("client/jack/session/2"));
34 assertFalse("", sessionName.matchRelativeName("client/jack/session/3"));
35 assertFalse("", sessionName.matchRelativeName("client/joe/session/2"));
36 assertFalse("", sessionName.matchRelativeName("client/x"));
37 assertEquals("", "client/*/session/2", sessionName.getRelativeSubjectIdWildcard());
38 assertEquals("", "client/jack/session/*", sessionName.getRelativePubSessionIdWildcard());
39 assertEquals("", "client/*/session/*", sessionName.getRelativeWildcard());
40 }
41 catch (IllegalArgumentException e) {
42 fail("testMatch failed: " + e.toString());
43 }
44 System.out.println("***SessionNameTest: testMatch done");
45 }
46
47 public void testParse() {
48 System.out.println("***SessionNameTest: testParse ...");
49 try {
50 SessionName sessionName = new SessionName(glob, "jack");
51 //assertEquals("", "/node/unknown/client/jack", sessionName.getAbsoluteName());
52 assertEquals("", "client/jack", sessionName.getAbsoluteName());
53 assertEquals("", (String)null, sessionName.getNodeIdStr());
54 assertEquals("", "client/jack", sessionName.getRelativeName());
55 assertEquals("", "jack", sessionName.getLoginName());
56 assertEquals("", 0L, sessionName.getPublicSessionId());
57 }
58 catch (IllegalArgumentException e) {
59 fail("testParse failed: " + e.toString());
60 }
61
62 try {
63 SessionName sessionName = new SessionName(glob, "client/jack");
64 System.out.println("AbsoluteName=" + sessionName.getAbsoluteName() + " RelativeName=" + sessionName.getRelativeName());
65 assertEquals("", "client/jack", sessionName.getAbsoluteName());
66 //assertEquals("", "/node/unknown/client/jack", sessionName.getAbsoluteName());
67 assertEquals("", (String)null, sessionName.getNodeIdStr());
68 assertEquals("", "client/jack", sessionName.getRelativeName());
69 assertEquals("", "jack", sessionName.getLoginName());
70 assertEquals("", 0L, sessionName.getPublicSessionId());
71 }
72 catch (IllegalArgumentException e) {
73 fail("testParse failed: " + e.toString());
74 }
75
76 try {
77 SessionName sessionName = new SessionName(glob, "client/jack/99");
78 System.out.println("AbsoluteName=" + sessionName.getAbsoluteName() + " RelativeName=" + sessionName.getRelativeName());
79 if (SessionName.useSessionMarker())
80 assertEquals("", "client/jack/session/99", sessionName.getAbsoluteName());
81 else
82 assertEquals("", "client/jack/99", sessionName.getAbsoluteName());
83 assertEquals("", (String)null, sessionName.getNodeIdStr());
84 if (SessionName.useSessionMarker())
85 assertEquals("", "client/jack/session/99", sessionName.getRelativeName());
86 else
87 assertEquals("", "client/jack/99", sessionName.getRelativeName());
88 assertEquals("", "jack", sessionName.getLoginName());
89 assertEquals("", 99L, sessionName.getPublicSessionId());
90 }
91 catch (IllegalArgumentException e) {
92 fail("testParse failed: " + e.toString());
93 }
94
95 try {
96 SessionName sessionName = new SessionName(glob, "/node/heron/client/jack/session/99");
97 System.out.println("AbsoluteName=" + sessionName.getAbsoluteName() + " RelativeName=" + sessionName.getRelativeName());
98 if (SessionName.useSessionMarker())
99 assertEquals("", "/node/heron/client/jack/session/99", sessionName.getAbsoluteName());
100 else
101 assertEquals("", "/node/heron/client/jack/99", sessionName.getAbsoluteName());
102 assertEquals("", "heron", sessionName.getNodeId().getId());
103 if (SessionName.useSessionMarker())
104 assertEquals("", "client/jack/session/99", sessionName.getRelativeName());
105 else
106 assertEquals("", "client/jack/99", sessionName.getRelativeName());
107 assertEquals("", "jack", sessionName.getLoginName());
108 assertEquals("", 99L, sessionName.getPublicSessionId());
109 }
110 catch (IllegalArgumentException e) {
111 fail("testParse failed: " + e.toString());
112 }
113
114 try { // Test copy constructor ...
115 SessionName tmp = new SessionName(glob, "client/jack");
116 SessionName sessionName = new SessionName(glob, tmp, -4L);
117 System.out.println("AbsoluteName=" + sessionName.getAbsoluteName() + " RelativeName=" + sessionName.getRelativeName());
118 if (SessionName.useSessionMarker())
119 assertEquals("", "client/jack/session/-4", sessionName.getAbsoluteName());
120 else
121 assertEquals("", "client/jack/-4", sessionName.getAbsoluteName());
122 assertEquals("", (String)null, sessionName.getNodeIdStr());
123 if (SessionName.useSessionMarker())
124 assertEquals("", "client/jack/session/-4", sessionName.getRelativeName());
125 else
126 assertEquals("", "client/jack/-4", sessionName.getRelativeName());
127 assertEquals("", "jack", sessionName.getLoginName());
128 assertEquals("", -4L, sessionName.getPublicSessionId());
129 }
130 catch (IllegalArgumentException e) {
131 fail("testParse failed: " + e.toString());
132 }
133
134 try { // Test given node ID ...
135 SessionName tmp = new SessionName(glob, new NodeId("avalon"), "client/jack");
136 SessionName sessionName = new SessionName(glob, tmp, -4);
137 System.out.println("AbsoluteName=" + sessionName.getAbsoluteName() + " RelativeName=" + sessionName.getRelativeName());
138 if (SessionName.useSessionMarker())
139 assertEquals("Expected /node/avalon/client/jack/session/-4 but was:" + sessionName.getAbsoluteName(), "/node/avalon/client/jack/session/-4", sessionName.getAbsoluteName());
140 else
141 assertEquals("Expected /node/avalon/client/jack/-4 but was:" + sessionName.getAbsoluteName(), "/node/avalon/client/jack/-4", sessionName.getAbsoluteName());
142 assertEquals("", "avalon", sessionName.getNodeId().getId());
143 if (SessionName.useSessionMarker())
144 assertEquals("", "client/jack/session/-4", sessionName.getRelativeName());
145 else
146 assertEquals("", "client/jack/-4", sessionName.getRelativeName());
147 assertEquals("", "jack", sessionName.getLoginName());
148 assertEquals("", -4L, sessionName.getPublicSessionId());
149 }
150 catch (IllegalArgumentException e) {
151 fail("testParse failed: " + e.toString());
152 }
153
154 try { // Test given node ID ...
155 SessionName tmp = new SessionName(glob, new NodeId("/node/avalon"), "client/jack");
156 SessionName sessionName = new SessionName(glob, tmp, -4);
157 System.out.println("AbsoluteName=" + sessionName.getAbsoluteName() + " RelativeName=" + sessionName.getRelativeName());
158 if (SessionName.useSessionMarker())
159 assertEquals("", "/node/avalon/client/jack/session/-4", sessionName.getAbsoluteName());
160 else
161 assertEquals("", "/node/avalon/client/jack/-4", sessionName.getAbsoluteName());
162 assertEquals("", "avalon", sessionName.getNodeId().getId());
163 if (SessionName.useSessionMarker())
164 assertEquals("", "client/jack/session/-4", sessionName.getRelativeName());
165 else
166 assertEquals("", "client/jack/-4", sessionName.getRelativeName());
167 assertEquals("", "jack", sessionName.getLoginName());
168 assertEquals("", -4L, sessionName.getPublicSessionId());
169 }
170 catch (IllegalArgumentException e) {
171 fail("testParse failed: " + e.toString());
172 }
173
174 try { // Test given node ID ...
175 SessionName sessionName = new SessionName(glob, new NodeId("/node/sauron/client/jack/99"), "/node/heron/client/jack/99");
176 System.out.println("AbsoluteName=" + sessionName.getAbsoluteName() + " RelativeName=" + sessionName.getRelativeName());
177 if (SessionName.useSessionMarker())
178 assertEquals("", "/node/sauron/client/jack/session/99", sessionName.getAbsoluteName());
179 else
180 assertEquals("", "/node/sauron/client/jack/99", sessionName.getAbsoluteName());
181 assertEquals("", "sauron", sessionName.getNodeId().getId());
182 if (SessionName.useSessionMarker())
183 assertEquals("", "client/jack/session/99", sessionName.getRelativeName());
184 else
185 assertEquals("", "client/jack/99", sessionName.getRelativeName());
186 assertEquals("", "jack", sessionName.getLoginName());
187 assertEquals("", 99L, sessionName.getPublicSessionId());
188 }
189 catch (IllegalArgumentException e) {
190 fail("testParse failed: " + e.toString());
191 }
192
193 try { // Test given node ID ...
194 new SessionName(glob, new NodeId("/avalon"), "client/jack");
195 fail("testParse failed, nodeId is invalid.");
196 }
197 catch (IllegalArgumentException e) {
198 System.out.println("SUCCESS: " + e.toString());
199 }
200
201 try {
202 new SessionName(glob, null);
203 fail("testParse failed, null should throw an exception.");
204 }
205 catch (IllegalArgumentException e) {
206 System.out.println("SUCCESS: " + e.toString());
207 }
208
209 try {
210 new SessionName(glob, "");
211 fail("testParse failed, \"\" should throw an exception.");
212 }
213 catch (IllegalArgumentException e) {
214 System.out.println("SUCCESS: " + e.toString());
215 }
216
217 try {
218 new SessionName(glob, "/");
219 fail("testParse failed, \"/\" should throw an exception.");
220 }
221 catch (IllegalArgumentException e) {
222 System.out.println("SUCCESS: " + e.toString());
223 }
224
225 try {
226 new SessionName(glob, "//////");
227 fail("testParse failed, \"//////\" should throw an exception.");
228 }
229 catch (IllegalArgumentException e) {
230 System.out.println("SUCCESS: " + e.toString());
231 }
232
233 try {
234 // missing clusterNodeId is similar to relative addressing,
235 // changed 2009-05-21 Marcel to not throw exception anymore
236 new SessionName(glob, "/node//joe/2");
237 System.out.println("SUCCESS: \"/node//joe/2\" missing clusterNodeId is similar to relative addressing.");
238 }
239 catch (IllegalArgumentException e) {
240 fail("testParse failed: " + e.toString());
241 }
242
243 try {
244 // missing clusterNodeId is similar to relative addressing,
245 // changed 2009-05-21 Marcel to not throw exception anymore
246 new SessionName(glob, "/node//client/joe/2");
247 System.out.println("SUCCESS: /node//client/joe/2 missing clusterNodeId is similar to relative addressing.");
248 }
249 catch (IllegalArgumentException e) {
250 fail("testParse failed: " + e.toString());
251 }
252
253 System.out.println("***SessionNameTest: testParse [SUCCESS]");
254 }
255
256 /**
257 * <pre>
258 * java org.xmlBlaster.test.classtest.SessionNameTest
259 * </pre>
260 */
261 public static void main(String args[])
262 {
263 SessionNameTest testSub = new SessionNameTest("SessionNameTest");
264 testSub.setUp();
265 testSub.testParse();
266 testSub.testMatch();
267 //testSub.tearDown();
268 }
269 }
syntax highlighted by Code2HTML, v. 0.9.1