You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm-commits@maven.apache.org by ev...@apache.org on 2004/01/23 09:52:02 UTC

cvs commit: maven-scm/generic-scm-providers/cvslib/src/test/org/apache/maven/genericscm/provider/cvslib/command/tag CvsTagCommandTest.java

evenisse    2004/01/23 00:52:02

  Added:       generic-scm-providers/cvslib/src/java/org/apache/maven/genericscm/provider/cvslib/command/tag
                        CvsTagCommand.java
               generic-scm-providers/cvslib/src/test/org/apache/maven/genericscm/provider/cvslib/command/tag
                        CvsTagCommandTest.java
  Log:
  Add cvs tag command
  
  Revision  Changes    Path
  1.1                  maven-scm/generic-scm-providers/cvslib/src/java/org/apache/maven/genericscm/provider/cvslib/command/tag/CvsTagCommand.java
  
  Index: CvsTagCommand.java
  ===================================================================
  package org.apache.maven.genericscm.provider.cvslib.command.tag;
  
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2003 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-userName documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   *    "Apache Maven" must not be used to endorse or promote products
   *    derived from this software without prior written permission. For
   *    written permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    "Apache Maven", nor may "Apache" appear in their name, without
   *    prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   * ====================================================================
   */
  
  import org.apache.maven.genericscm.ScmException;
  import org.apache.maven.genericscm.command.tag.TagCommand;
  import org.apache.maven.genericscm.provider.cvslib.command.AbstractCvsCommand;
  import org.apache.maven.genericscm.provider.cvslib.repository.CvsRepository;
  import org.apache.maven.genericscm.util.Commandline;
  
  /**
   * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
   * @version $Id: CvsTagCommand.java,v 1.1 2004/01/23 08:52:02 evenisse Exp $
   */
  public class CvsTagCommand
      extends AbstractCvsCommand
      implements TagCommand
  {
      private String tagName;
  
      public void setTagName(String name)
      {
          this.tagName = name;
      }
      
      public String getTagName()
      {
          return tagName;
      }
      
      /* (non-Javadoc)
       * @see org.apache.maven.genericscm.command.AbstractCommand#getCommandLine()
       */
      public Commandline getCommandLine() throws ScmException
      {
  		Commandline cl = new Commandline();
  		cl.setExecutable("cvs");
  
  		if (getWorkingDirectory() != null)
  		{
  			cl.setWorkingDirectory(getWorkingDirectory());
  		}
  
  		CvsRepository repo = (CvsRepository)getRepository();
  		if (repo.getCvsRoot() != null)
  		{
  			cl.createArgument().setValue("-d");
  			cl.createArgument().setValue(repo.getCvsRoot());
  		}
  
  		cl.createArgument().setValue("-q");
  
  		cl.createArgument().setValue("tag");
  
  		cl.createArgument().setValue("-c");
  
  		if (getTagName() != null)
  		{
  			cl.createArgument().setValue(getTagName());
  		}
  		else
  		{
  		    throw new ScmException("You must specify a tag name");
  		}
  		
  		return cl;
      }
  
      /* (non-Javadoc)
       * @see org.apache.maven.genericscm.command.Command#getName()
       */
      public String getName() throws Exception
      {
  		return NAME;
      }
  
      /* (non-Javadoc)
       * @see org.apache.maven.genericscm.command.Command#getDisplayName()
       */
      public String getDisplayName() throws Exception
      {
          return "Tag";
      }
  
  }
  
  
  
  1.1                  maven-scm/generic-scm-providers/cvslib/src/test/org/apache/maven/genericscm/provider/cvslib/command/tag/CvsTagCommandTest.java
  
  Index: CvsTagCommandTest.java
  ===================================================================
  package org.apache.maven.genericscm.provider.cvslib.command.tag;
  
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2003 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-userName documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   *    "Apache Maven" must not be used to endorse or promote products
   *    derived from this software without prior written permission. For
   *    written permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    "Apache Maven", nor may "Apache" appear in their name, without
   *    prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   * ====================================================================
   */
  
  import java.io.File;
  
  import org.apache.maven.genericscm.ScmException;
  import org.apache.maven.genericscm.provider.cvslib.repository.CvsRepository;
  import org.apache.maven.genericscm.util.Commandline;
  
  import junit.framework.TestCase;
  
  /**
   * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
   * @version $Id: CvsTagCommandTest.java,v 1.1 2004/01/23 08:52:02 evenisse Exp $
   */
  public class CvsTagCommandTest extends TestCase
  {
      private CvsTagCommand instance;
      private String baseDir;
  
      /**
       * @param testName
       */
      public CvsTagCommandTest(String testName)
      {
          super(testName);
      }
  
      /**
       * Initialize per test data
       * @throws Exception when there is an unexpected problem
       */
      public void setUp() throws Exception
      {
          baseDir = System.getProperty("basedir");
          assertNotNull("The system property basedir was not defined.", baseDir);
          instance = new CvsTagCommand();
      }
  
      public void testGetCommandWithTag()
      {
          try
          {
              CvsRepository repo = new CvsRepository();
              repo.setDelimiter(":");
              repo.setConnection(
                  "pserver:anonymous@cvs.codehaus.org:/scm/cvspublic:test-repo");
              repo.setPassword("anonymous@cvs.codehaus.org");
  
              instance.setRepository(repo);
              instance.setTagName("my_tag");
              Commandline cl = instance.getCommandLine();
              System.out.println(cl.toString());
              assertEquals(
                  "cvs -d :pserver:anonymous@cvs.codehaus.org:/scm/cvspublic -q tag -c my_tag",
                  cl.toString());
          }
          catch (Exception e)
          {
              e.printStackTrace();
              fail(e.getMessage());
          }
      }
      
      public void testGetCommandWithoutTag()
      {
          try
          {
              CvsRepository repo = new CvsRepository();
              repo.setDelimiter(":");
              repo.setConnection(
                  "pserver:anonymous@cvs.codehaus.org:/scm/cvspublic:test-repo");
              repo.setPassword("anonymous@cvs.codehaus.org");
  
              instance.setRepository(repo);
              Commandline cl = instance.getCommandLine();
              fail("an exception must be throw");
          }
          catch(ScmException e)
          {
          }
      }
      
      public void testGetDisplayNameName()
      {
          try
          {
              assertEquals("Tag", instance.getDisplayName());
          }
          catch(Exception e)
          {
              fail();
          }
      }
      
      public void testGetName()
      {
          try
          {
              assertEquals("tag", instance.getName());
          }
          catch(Exception e)
          {
              fail();
          }
      }
  }