ScmUrlTest.java :  » Build » antmod » org » antmod » scm » Java Open Source

Java Open Source » Build » antmod 
antmod » org » antmod » scm » ScmUrlTest.java
package org.antmod.scm;

import java.text.ParseException;

import junit.framework.TestCase;

public class ScmUrlTest extends TestCase {

    private final static String SCM_USER = "scmusername";
    private final static String SCM_HOST = "somescmhost";
    private final static String SCM_CVS_PROTOCOL = "pserver";
    private final static String SCM_CVS_PATH = "/cvs/somepath/root";
    private final static String SCM_CVS_MODULE = "modulefromcvs";

  public void testCvsWindowsPathUrl() {
    boolean exceptionOccured = false;
    try {
      String winPath = "c:/somepath/restofpath";
      ScmUrl su = new ScmUrl("scm:cvs:local:ignored:" + winPath);
      assertEquals(su.getPath(), winPath);
    } catch (ParseException pe) {
      fail("Parse exception occured: " + pe);
    } catch (IllegalArgumentException iae) {
      fail("Illegal argument exception occured: " + iae);
    }
  }

    public void testInvalidTypeUrl() {
        boolean exceptionOccured = false;
        try {
            ScmUrl su = new ScmUrl("scm:invalidScmType:etcetera");
        } catch (ParseException pe) {
            fail("Parse exception occured: " + pe);
        } catch (IllegalArgumentException iae) {
            exceptionOccured = true;
        }
        assertTrue(
            "Invalid url type did not throw exception in ScmUrl constructor.",
            exceptionOccured);
    }
    
    public void testSvnUrls() {
    try {
      ScmUrl su = new ScmUrl("scm:svn:http://" + SCM_HOST + "/pathtosvn");
      assertNull("Password should be null", su.getPassword());
      assertNull("User should be null", su.getUser());
      assertNull("Module should be null", su.getModule());
      assertEquals("svn", su.getType());
      assertEquals("http", su.getProtocol());
      assertEquals(SCM_HOST, su.getHost());
      assertEquals("/pathtosvn", su.getPath());
            
      // now test with module
      su = new ScmUrl("scm:svn:http://someuser@" + SCM_HOST + "/pathtosvn:somemodule");
      assertEquals("somemodule", su.getModule());

      // now test with port number
      su = new ScmUrl("scm:svn:http://someuser@" + SCM_HOST + ":8084/pathtosvn:somemodule");
      assertEquals("somemodule", su.getModule());
      assertTrue(su.getHost().endsWith("8084"));
      assertEquals("/pathtosvn", su.getPath());
            
      // now test with username
      su = new ScmUrl("scm:svn:http://someuser@" + SCM_HOST + "/pathtosvn");
      assertNull("Password should be null", su.getPassword());
      assertEquals("someuser", su.getUser());
      assertNull("Module should be null", su.getModule());
      assertEquals("svn", su.getType());
      assertEquals("http", su.getProtocol());
      assertEquals(SCM_HOST, su.getHost());
      assertEquals("/pathtosvn", su.getPath());
            
      // now test with username and password
      su = new ScmUrl("scm:svn:http://someuser:somepassword@" + SCM_HOST + "/pathtosvn");
      assertEquals("somepassword", su.getPassword());
      assertEquals("someuser", su.getUser());
      assertNull("Module should be null", su.getModule());
      assertEquals("svn", su.getType());
      assertEquals("http", su.getProtocol());
      assertEquals(SCM_HOST, su.getHost());
      assertEquals("/pathtosvn", su.getPath());

      // now test with file protocol
      su = new ScmUrl("scm:svn:file:///C:/pathtosvn:somemodule");
      assertEquals("somemodule", su.getModule());
      assertEquals("C:/pathtosvn", su.getPath());
      assertEquals("file", su.getProtocol());
      assertNull("Host should be null", su.getHost());
      assertNull("Username should be null", su.getUser());
            
    } catch (ParseException pe) {
      fail("Parsing subversion url failed: " + pe);
    }
    }


    public void testCvsUrl() {
        String validCvsUrl =
            "scm:cvs:"
                + SCM_CVS_PROTOCOL
                + ":"
                + SCM_USER
                + "@"
                + SCM_HOST
                + ":"
                + SCM_CVS_PATH;
        String validCvsUrlWithModule = validCvsUrl + ":"  + SCM_CVS_MODULE;
        String validCvsUrlWithPort = "scm:cvs:"
            + SCM_CVS_PROTOCOL
            + ":"
            + SCM_USER
            + "@"
            + SCM_HOST
            + ":2222"
            + SCM_CVS_PATH;;

        try {
            ScmUrl su = new ScmUrl(validCvsUrl);

            assertNull("Password should be null", su.getPassword());
            assertEquals("cvs", su.getType());
            assertEquals(SCM_CVS_PROTOCOL, su.getProtocol());
            assertEquals(SCM_USER, su.getUser());
            assertEquals(SCM_HOST, su.getHost());
            assertEquals(SCM_CVS_PATH, su.getPath());
            assertNull("Module should be null", su.getModule());

            su = new ScmUrl(validCvsUrlWithModule);
            assertEquals(SCM_CVS_MODULE, su.getModule());

            su = new ScmUrl("scm:cvs:pserver:cvsuser@cvshostname:2222/some/cvs/path");
            assertTrue("CVS url port number is 2222", su.getHost().endsWith("2222"));

            su = new ScmUrl("scm:cvs:pserver:cvsuser@cvshostname:2222/some/cvs/path:somemodule");
            assertEquals("CVS url with port contains module name 'somemodule'", su.getModule(), "somemodule");
        } catch (ParseException pe) {
            fail(
                "Valid cvs url string \""
                    + validCvsUrl
                    + "\" caused exception: "
                    + pe);
        }
    }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.