KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > antmod > scm > ScmUrlTest


1 package org.antmod.scm;
2
3 import java.text.ParseException JavaDoc;
4
5 import junit.framework.TestCase;
6
7 public class ScmUrlTest extends TestCase {
8
9     private final static String JavaDoc SCM_USER = "scmusername";
10     private final static String JavaDoc SCM_HOST = "somescmhost";
11     private final static String JavaDoc SCM_CVS_PROTOCOL = "pserver";
12     private final static String JavaDoc SCM_CVS_PATH = "/cvs/somepath/root";
13     private final static String JavaDoc SCM_CVS_MODULE = "modulefromcvs";
14
15     public void testCvsWindowsPathUrl() {
16         boolean exceptionOccured = false;
17         try {
18             String JavaDoc winPath = "c:/somepath/restofpath";
19             ScmUrl su = new ScmUrl("scm:cvs:local:ignored:" + winPath);
20             assertEquals(su.getPath(), winPath);
21         } catch (ParseException JavaDoc pe) {
22             fail("Parse exception occured: " + pe);
23         } catch (IllegalArgumentException JavaDoc iae) {
24             fail("Illegal argument exception occured: " + iae);
25         }
26     }
27
28     public void testInvalidTypeUrl() {
29         boolean exceptionOccured = false;
30         try {
31             ScmUrl su = new ScmUrl("scm:invalidScmType:etcetera");
32         } catch (ParseException JavaDoc pe) {
33             fail("Parse exception occured: " + pe);
34         } catch (IllegalArgumentException JavaDoc iae) {
35             exceptionOccured = true;
36         }
37         assertTrue(
38             "Invalid url type did not throw exception in ScmUrl constructor.",
39             exceptionOccured);
40     }
41     
42     public void testSvnUrls() {
43         try {
44             ScmUrl su = new ScmUrl("scm:svn:http://" + SCM_HOST + "/pathtosvn");
45             assertNull("Password should be null", su.getPassword());
46             assertNull("User should be null", su.getUser());
47             assertNull("Module should be null", su.getModule());
48             assertEquals("svn", su.getType());
49             assertEquals("http", su.getProtocol());
50             assertEquals(SCM_HOST, su.getHost());
51             assertEquals("/pathtosvn", su.getPath());
52             
53             // now test with module
54
su = new ScmUrl("scm:svn:http://someuser@" + SCM_HOST + "/pathtosvn:somemodule");
55             assertEquals("somemodule", su.getModule());
56
57             // now test with port number
58
su = new ScmUrl("scm:svn:http://someuser@" + SCM_HOST + ":8084/pathtosvn:somemodule");
59             assertEquals("somemodule", su.getModule());
60             assertTrue(su.getHost().endsWith("8084"));
61             assertEquals("/pathtosvn", su.getPath());
62             
63             // now test with username
64
su = new ScmUrl("scm:svn:http://someuser@" + SCM_HOST + "/pathtosvn");
65             assertNull("Password should be null", su.getPassword());
66             assertEquals("someuser", su.getUser());
67             assertNull("Module should be null", su.getModule());
68             assertEquals("svn", su.getType());
69             assertEquals("http", su.getProtocol());
70             assertEquals(SCM_HOST, su.getHost());
71             assertEquals("/pathtosvn", su.getPath());
72             
73             // now test with username and password
74
su = new ScmUrl("scm:svn:http://someuser:somepassword@" + SCM_HOST + "/pathtosvn");
75             assertEquals("somepassword", su.getPassword());
76             assertEquals("someuser", su.getUser());
77             assertNull("Module should be null", su.getModule());
78             assertEquals("svn", su.getType());
79             assertEquals("http", su.getProtocol());
80             assertEquals(SCM_HOST, su.getHost());
81             assertEquals("/pathtosvn", su.getPath());
82
83             // now test with file protocol
84
su = new ScmUrl("scm:svn:file:///C:/pathtosvn:somemodule");
85             assertEquals("somemodule", su.getModule());
86             assertEquals("C:/pathtosvn", su.getPath());
87             assertEquals("file", su.getProtocol());
88             assertNull("Host should be null", su.getHost());
89             assertNull("Username should be null", su.getUser());
90             
91         } catch (ParseException JavaDoc pe) {
92             fail("Parsing subversion url failed: " + pe);
93         }
94     }
95
96
97     public void testCvsUrl() {
98         String JavaDoc validCvsUrl =
99             "scm:cvs:"
100                 + SCM_CVS_PROTOCOL
101                 + ":"
102                 + SCM_USER
103                 + "@"
104                 + SCM_HOST
105                 + ":"
106                 + SCM_CVS_PATH;
107         String JavaDoc validCvsUrlWithModule = validCvsUrl + ":" + SCM_CVS_MODULE;
108         String JavaDoc validCvsUrlWithPort = "scm:cvs:"
109             + SCM_CVS_PROTOCOL
110             + ":"
111             + SCM_USER
112             + "@"
113             + SCM_HOST
114             + ":2222"
115             + SCM_CVS_PATH;;
116
117         try {
118             ScmUrl su = new ScmUrl(validCvsUrl);
119
120             assertNull("Password should be null", su.getPassword());
121             assertEquals("cvs", su.getType());
122             assertEquals(SCM_CVS_PROTOCOL, su.getProtocol());
123             assertEquals(SCM_USER, su.getUser());
124             assertEquals(SCM_HOST, su.getHost());
125             assertEquals(SCM_CVS_PATH, su.getPath());
126             assertNull("Module should be null", su.getModule());
127
128             su = new ScmUrl(validCvsUrlWithModule);
129             assertEquals(SCM_CVS_MODULE, su.getModule());
130
131             su = new ScmUrl("scm:cvs:pserver:cvsuser@cvshostname:2222/some/cvs/path");
132             assertTrue("CVS url port number is 2222", su.getHost().endsWith("2222"));
133
134             su = new ScmUrl("scm:cvs:pserver:cvsuser@cvshostname:2222/some/cvs/path:somemodule");
135             assertEquals("CVS url with port contains module name 'somemodule'", su.getModule(), "somemodule");
136         } catch (ParseException JavaDoc pe) {
137             fail(
138                 "Valid cvs url string \""
139                     + validCvsUrl
140                     + "\" caused exception: "
141                     + pe);
142         }
143     }
144 }
145
Popular Tags