1 package org.antmod.scm; 2 3 import java.text.ParseException ; 4 5 import junit.framework.TestCase; 6 7 public class ScmUrlTest extends TestCase { 8 9 private final static String SCM_USER = "scmusername"; 10 private final static String SCM_HOST = "somescmhost"; 11 private final static String SCM_CVS_PROTOCOL = "pserver"; 12 private final static String SCM_CVS_PATH = "/cvs/somepath/root"; 13 private final static String SCM_CVS_MODULE = "modulefromcvs"; 14 15 public void testCvsWindowsPathUrl() { 16 boolean exceptionOccured = false; 17 try { 18 String winPath = "c:/somepath/restofpath"; 19 ScmUrl su = new ScmUrl("scm:cvs:local:ignored:" + winPath); 20 assertEquals(su.getPath(), winPath); 21 } catch (ParseException pe) { 22 fail("Parse exception occured: " + pe); 23 } catch (IllegalArgumentException 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 pe) { 33 fail("Parse exception occured: " + pe); 34 } catch (IllegalArgumentException 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 su = new ScmUrl("scm:svn:http://someuser@" + SCM_HOST + "/pathtosvn:somemodule"); 55 assertEquals("somemodule", su.getModule()); 56 57 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 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 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 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 pe) { 92 fail("Parsing subversion url failed: " + pe); 93 } 94 } 95 96 97 public void testCvsUrl() { 98 String validCvsUrl = 99 "scm:cvs:" 100 + SCM_CVS_PROTOCOL 101 + ":" 102 + SCM_USER 103 + "@" 104 + SCM_HOST 105 + ":" 106 + SCM_CVS_PATH; 107 String validCvsUrlWithModule = validCvsUrl + ":" + SCM_CVS_MODULE; 108 String 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 pe) { 137 fail( 138 "Valid cvs url string \"" 139 + validCvsUrl 140 + "\" caused exception: " 141 + pe); 142 } 143 } 144 } 145 | Popular Tags |