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