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 2006/02/24 16:05:37 UTC
svn commit: r380682 - in /maven/scm/trunk:
maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/
maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/baz...
Author: evenisse
Date: Fri Feb 24 07:05:35 2006
New Revision: 380682
URL: http://svn.apache.org/viewcvs?rev=380682&view=rev
Log:
[SCM-160]Refactored tck tests, added changelog tck test and added changelog, diff test for the bazaar provider
Submitted by Torbjorn EIkli Smorgrav
Added:
maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/command/changelog/
maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogCommandTckTest.java (with props)
maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/command/diff/
maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/command/diff/BazaarDiffCommandTest.java (with props)
maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTckTestCase.java (with props)
maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/changelog/
maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/changelog/ChangeLogCommandTckTest.java (with props)
Modified:
maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogConsumer.java
maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java
maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkin/CheckInCommandTckTest.java
maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkout/CheckOutCommandTckTest.java
maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/diff/DiffCommandTckTest.java
maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/status/StatusCommandTckTest.java
maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/tag/TagCommandTckTest.java
maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/update/UpdateCommandTckTest.java
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogConsumer.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogConsumer.java?rev=380682&r1=380681&r2=380682&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogConsumer.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogConsumer.java Fri Feb 24 07:05:35 2006
@@ -121,7 +121,9 @@
}
else if ( currentStatus == ScmFileStatus.UNKNOWN )
{
- currentComment.append( line ).append( "\n" );
+ currentComment.append( line );
+ currentChange.setComment(currentComment.toString());
+ currentComment.append( "\n" );
}
else if ( currentStatus != null )
{
Added: maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogCommandTckTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogCommandTckTest.java?rev=380682&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogCommandTckTest.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogCommandTckTest.java Fri Feb 24 07:05:35 2006
@@ -0,0 +1,20 @@
+package org.apache.maven.scm.provider.bazaar.command.changelog;
+
+import org.apache.maven.scm.provider.bazaar.BazaarTestUtils;
+import org.apache.maven.scm.tck.command.changelog.ChangeLogCommandTckTest;
+
+public class BazaarChangeLogCommandTckTest
+ extends ChangeLogCommandTckTest
+{
+ public String getScmUrl()
+ throws Exception
+ {
+ return BazaarTestUtils.getScmUrl();
+ }
+
+ public void initRepo()
+ throws Exception
+ {
+ BazaarTestUtils.initRepo();
+ }
+}
Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogCommandTckTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogCommandTckTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/command/diff/BazaarDiffCommandTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/command/diff/BazaarDiffCommandTest.java?rev=380682&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/command/diff/BazaarDiffCommandTest.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/command/diff/BazaarDiffCommandTest.java Fri Feb 24 07:05:35 2006
@@ -0,0 +1,20 @@
+package org.apache.maven.scm.provider.bazaar.command.diff;
+
+import org.apache.maven.scm.provider.bazaar.BazaarTestUtils;
+import org.apache.maven.scm.tck.command.diff.DiffCommandTckTest;
+
+public class BazaarDiffCommandTest
+ extends DiffCommandTckTest
+{
+ public String getScmUrl()
+ throws Exception
+ {
+ return BazaarTestUtils.getScmUrl();
+ }
+
+ public void initRepo()
+ throws Exception
+ {
+ BazaarTestUtils.initRepo();
+ }
+}
Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/command/diff/BazaarDiffCommandTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/command/diff/BazaarDiffCommandTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTckTestCase.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTckTestCase.java?rev=380682&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTckTestCase.java (added)
+++ maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTckTestCase.java Fri Feb 24 07:05:35 2006
@@ -0,0 +1,132 @@
+package org.apache.maven.scm;
+
+/*
+ * Copyright 2001-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.scm.command.add.AddScmResult;
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
+import org.apache.maven.scm.provider.ScmProvider;
+import org.apache.maven.scm.repository.ScmRepository;
+import org.codehaus.plexus.util.FileUtils;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ * Base class for all TcK tests.
+ * <p/>
+ * Basically all it does is to setup a default test enviroment
+ * common for all tck tests. The default setup includes: <br>
+ * 1. Delete all default locations (working copy, updating copy etc) <br>
+ * 2. Initialize the repository <br>
+ * 3. Check out the repository to the working copy<br>
+ * <br>
+ *
+ * @author <a href="mailto:torbjorn@smorgrav.org">Torbjørn Eikli Smørgrav</a>
+ */
+public abstract class ScmTckTestCase
+ extends ScmTestCase
+{
+ private ScmRepository scmRepository;
+
+ /**
+ * @return A provider spesific and valid url for the repository
+ */
+ public abstract String getScmUrl()
+ throws Exception;
+
+ /**
+ * Initialize repository at the getScmUrl() location with the files:
+ * <p/>
+ * <br>
+ * /pom.xml <br>
+ * /readme.txt <br>
+ * /src/main/java/Application.java <br>
+ * /src/test/java/Test.java <br>
+ * <br>
+ * <p/>
+ * The setup is also asserting on the existence of these files. <br>
+ * This should only be used by this class (thus do not call this method from derived classes)
+ */
+ public abstract void initRepo()
+ throws Exception;
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+
+ scmRepository = null;
+
+ FileUtils.deleteDirectory( getRepositoryRoot() );
+ FileUtils.deleteDirectory( getWorkingCopy() );
+ FileUtils.deleteDirectory( getUpdatingCopy() );
+ FileUtils.deleteDirectory( getAssertionCopy() );
+
+ initRepo();
+
+ checkOut( getWorkingCopy(), getScmRepository() );
+
+ assertFile( getWorkingCopy(), "/pom.xml" );
+ assertFile( getWorkingCopy(), "/readme.txt" );
+ assertFile( getWorkingCopy(), "/src/main/java/Application.java" );
+ assertFile( getWorkingCopy(), "/src/test/java/Test.java" );
+ }
+
+ /**
+ * Convenience method to get the ScmRepository for this provider
+ */
+ protected ScmRepository getScmRepository()
+ throws Exception
+ {
+ if ( scmRepository == null )
+ {
+ scmRepository = getScmManager().makeScmRepository( getScmUrl() );
+ }
+
+ return scmRepository;
+ }
+
+ /**
+ * Convenience method to checkout files from the repository
+ */
+ protected CheckOutScmResult checkOut( File workingDirectory, ScmRepository repository )
+ throws Exception
+ {
+ CheckOutScmResult result = getScmManager().getProviderByUrl( getScmUrl() )
+ .checkOut( repository, new ScmFileSet( workingDirectory ), null );
+
+ assertTrue( "Check result was successful, output: " + result.getCommandOutput(), result.isSuccess() );
+
+ return result;
+ }
+
+ /**
+ * Convenience method to add a file to the working tree at the working directory
+ */
+ protected void addToWorkingTree( File workingDirectory, File file, ScmRepository repository )
+ throws Exception
+ {
+ ScmProvider provider = getScmManager().getProviderByUrl( getScmUrl() );
+ AddScmResult result = provider.add( repository, new ScmFileSet( workingDirectory, file ) );
+
+ assertTrue( "Check result was successful, output: " + result.getCommandOutput(), result.isSuccess() );
+
+ List addedFiles = result.getAddedFiles();
+
+ assertEquals( "Expected 1 file in the added files list " + addedFiles, 1, addedFiles.size() );
+ }
+}
Propchange: maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTckTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTckTestCase.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java?rev=380682&r1=380681&r2=380682&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java (original)
+++ maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java Fri Feb 24 07:05:35 2006
@@ -16,7 +16,6 @@
* limitations under the License.
*/
-import junit.framework.TestCase;
import org.apache.maven.scm.manager.ScmManager;
import org.apache.maven.scm.repository.ScmRepository;
import org.codehaus.plexus.PlexusTestCase;
@@ -34,6 +33,12 @@
import java.util.TimeZone;
/**
+ * Base class for all scm tests. Consumers will typically
+ * extend this class while tck test would extend ScmTckTestCase.
+ * <br>
+ * This class basically defines default locations for the
+ * test enviroment and implements convenience methods.
+ *
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
* @version $Id$
*/
@@ -44,8 +49,14 @@
private static boolean debugExecute;
- public ScmTestCase()
+ private ScmManager scmManager;
+
+ protected void setUp()
+ throws Exception
{
+ super.setUp();
+
+ scmManager = null;
}
protected String getModule()
@@ -55,22 +66,65 @@
return null;
}
- // ----------------------------------------------------------------------
- //
- // ----------------------------------------------------------------------
+ /**
+ * @return default location of the test read/write repository
+ */
+ protected File getRepositoryRoot()
+ {
+ return PlexusTestCase.getTestFile( "target/scm-test/repository" );
+ }
- protected void setUp()
- throws Exception
+ /**
+ * @return Location of the revisioned (read only) repository
+ */
+ protected File getRepository()
{
- super.setUp();
+ return PlexusTestCase.getTestFile( "/src/test/repository" );
+ }
- FileUtils.deleteDirectory( getWorkingDirectory() );
+ /**
+ * @return location of the working copy (always checkout)
+ */
+ protected File getWorkingCopy()
+ {
+ return PlexusTestCase.getTestFile( "target/scm-test/working-copy" );
+ }
+
+ /**
+ * Legacy method - same as getWorkingCopy()
+ *
+ * @return location of the working copy (always checkout)
+ */
+ protected File getWorkingDirectory()
+ {
+ return getWorkingCopy();
+ }
+
+ /**
+ * @return default location for doing assertions on a working tree
+ */
+ protected File getAssertionCopy()
+ {
+ return PlexusTestCase.getTestFile( "target/scm-test/assertion-copy" );
+ }
+
+ /**
+ * @return default location for doing update operations on a working tree
+ */
+ protected File getUpdatingCopy()
+ {
+ return PlexusTestCase.getTestFile( "target/scm-test/updating-copy" );
}
protected ScmManager getScmManager()
throws Exception
{
- return (ScmManager) lookup( ScmManager.ROLE );
+ if ( scmManager == null )
+ {
+ scmManager = (ScmManager) lookup( ScmManager.ROLE );
+ }
+
+ return scmManager;
}
protected ScmRepository makeScmRepository( String scmUrl )
@@ -79,17 +133,34 @@
return getScmManager().makeScmRepository( scmUrl );
}
- // ----------------------------------------------------------------------
- // Assertions
- // ----------------------------------------------------------------------
-
+ /**
+ * TODO This method is bogus. ActualPatch is not used and if used, it breaks
+ * some unit tests.
+ */
public void assertPath( String expectedPath, String actualPath )
throws Exception
{
assertEquals( StringUtils.replace( expectedPath, "\\", "/" ), StringUtils.replace( expectedPath, "\\", "/" ) );
}
- public void assertResultIsSuccess( ScmResult result )
+ protected void assertFile( File root, String fileName )
+ throws Exception
+ {
+ File file = new File( root, fileName );
+
+ assertTrue( "Missing file: '" + file.getAbsolutePath() + "'.", file.exists() );
+
+ assertTrue( "File isn't a file: '" + file.getAbsolutePath() + "'.", file.isFile() );
+
+ String expected = fileName;
+
+ String actual = FileUtils.fileRead( file );
+
+ assertEquals( "The file doesn't contain the expected contents. File: " + file.getAbsolutePath(), expected,
+ actual );
+ }
+
+ protected void assertResultIsSuccess( ScmResult result )
{
if ( result.isSuccess() )
{
@@ -111,27 +182,9 @@
fail( "The check out result success flag was false." );
}
- // ----------------------------------------------------------------------
- // Utility Methods
- // ----------------------------------------------------------------------
-
- protected File getRepository()
- {
- return getTestFile( "/src/test/repository" );
- }
-
protected ScmFileSet getScmFileSet()
{
- return new ScmFileSet( getWorkingDirectory() );
- }
-
- protected File getWorkingDirectory()
- {
- String testName = this.getClass().getName().substring( this.getClass().getName().lastIndexOf( "." ) + 1 );
-
- String caseName = ( (TestCase) this ).getName();
-
- return getTestFile( "target/workingDirectory/" + testName + "/" + caseName );
+ return new ScmFileSet( getWorkingCopy() );
}
protected static void setDebugExecute( boolean debugExecute )
@@ -181,7 +234,7 @@
}
}
- public static void makeDirectory( File basedir, String fileName )
+ protected static void makeDirectory( File basedir, String fileName )
{
File dir = new File( basedir, fileName );
@@ -191,7 +244,7 @@
}
}
- public static void makeFile( File basedir, String fileName )
+ protected static void makeFile( File basedir, String fileName )
throws IOException
{
makeFile( basedir, fileName, fileName );
Added: maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/changelog/ChangeLogCommandTckTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/changelog/ChangeLogCommandTckTest.java?rev=380682&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/changelog/ChangeLogCommandTckTest.java (added)
+++ maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/changelog/ChangeLogCommandTckTest.java Fri Feb 24 07:05:35 2006
@@ -0,0 +1,78 @@
+package org.apache.maven.scm.tck.command.changelog;
+
+/*
+ * Copyright 2001-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.scm.ChangeSet;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.ScmTckTestCase;
+import org.apache.maven.scm.ScmTestCase;
+import org.apache.maven.scm.command.changelog.ChangeLogScmResult;
+import org.apache.maven.scm.command.checkin.CheckInScmResult;
+import org.apache.maven.scm.provider.ScmProvider;
+
+import java.util.Date;
+
+/**
+ * Test Changlog command. <br>
+ * 1. Get initial log <br>
+ * 2. Add one revision <br>
+ * 3. Get the two logs <br>
+ * 4. Get the last log based on date <br>
+ * 5. Test last log for date and comment <br>
+ *
+ * @author <a href="mailto:torbjorn@smorgrav.org">Torbjørn Eikli Smørgrav</a>
+ */
+public abstract class ChangeLogCommandTckTest
+ extends ScmTckTestCase
+{
+ private final static String COMMIT_MSG = "Second changelog";
+
+ public void testChangeLogCommand()
+ throws Exception
+ {
+ ScmProvider provider = getScmManager().getProviderByRepository( getScmRepository() );
+ ScmFileSet fileSet = new ScmFileSet( getWorkingCopy() );
+
+ //We should have one log entry for the initial repository
+ ChangeLogScmResult result = provider.changeLog( getScmRepository(), fileSet, null, null, 0, null, null );
+ assertTrue( result.isSuccess() );
+ assertEquals( 1, result.getChangeLog().getChangeSets().size() );
+
+ //Make a timestamp that we know are after initial revision but before the second
+ Date timeBeforeSecond = new Date(); //Current time
+
+ //Make a change to the readme.txt and commit the change
+ ScmTestCase.makeFile( getWorkingCopy(), "/readme.txt", "changed readme.txt" );
+ CheckInScmResult checkInResult = provider.checkIn( getScmRepository(), fileSet, null, COMMIT_MSG );
+ assertTrue( "Unable to checkin changes to the repository", checkInResult.isSuccess() );
+
+ result = provider.changeLog( getScmRepository(), fileSet, null, null );
+ assertTrue( result.isSuccess() );
+ assertEquals( 2, result.getChangeLog().getChangeSets().size() );
+
+ //Now only retrieve the changelog after timeBeforeSecondChangeLog
+ Date currentTime = new Date();
+ result = provider.changeLog( getScmRepository(), fileSet, timeBeforeSecond, currentTime, 0, "" );
+
+ //Thorough assert of the last result
+ assertTrue( result.isSuccess() );
+ assertEquals( 1, result.getChangeLog().getChangeSets().size() );
+ ChangeSet changeset = (ChangeSet) result.getChangeLog().getChangeSets().get( 0 );
+ assertTrue( changeset.getDate().after( timeBeforeSecond ) );
+ assertEquals( COMMIT_MSG, changeset.getComment() );
+ }
+}
Propchange: maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/changelog/ChangeLogCommandTckTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/changelog/ChangeLogCommandTckTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkin/CheckInCommandTckTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkin/CheckInCommandTckTest.java?rev=380682&r1=380681&r2=380682&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkin/CheckInCommandTckTest.java (original)
+++ maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkin/CheckInCommandTckTest.java Fri Feb 24 07:05:35 2006
@@ -19,13 +19,10 @@
import org.apache.maven.scm.ScmFile;
import org.apache.maven.scm.ScmFileSet;
import org.apache.maven.scm.ScmFileStatus;
-import org.apache.maven.scm.ScmTestCase;
+import org.apache.maven.scm.ScmTckTestCase;
import org.apache.maven.scm.command.add.AddScmResult;
import org.apache.maven.scm.command.checkin.CheckInScmResult;
import org.apache.maven.scm.command.checkout.CheckOutScmResult;
-import org.apache.maven.scm.manager.ScmManager;
-import org.apache.maven.scm.repository.ScmRepository;
-import org.codehaus.plexus.PlexusTestCase;
import org.codehaus.plexus.util.FileUtils;
import java.io.File;
@@ -35,122 +32,22 @@
/**
* This test tests the check out command.
- * <p/>
- * A check out has to produce these files:
- * <p/>
- * <ul>
- * <li>/pom.xml</li>
- * <li>/readme.txt</li>
- * <li>/src/main/java/Application.java</li>
- * <li>/src/test/java/Test.java</li>
- * </ul>
*
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
* @version $Id$
*/
public abstract class CheckInCommandTckTest
- extends ScmTestCase
+ extends ScmTckTestCase
{
- private File workingDirectory;
-
- private ScmManager scmManager;
-
- private ScmRepository repository;
-
- private File assertionDirectory;
-
- // ----------------------------------------------------------------------
- // Methods the provider test has to implement
- // ----------------------------------------------------------------------
-
- public abstract String getScmUrl()
- throws Exception;
-
- /**
- * Copy the existing checked in repository to the working directory.
- * <p/>
- * (src/test/repository/my-cvs-repository)
- *
- * @throws Exception
- */
- public abstract void initRepo()
- throws Exception;
-
- // ----------------------------------------------------------------------
- // Directories the test must use
- // ----------------------------------------------------------------------
-
- protected File getRepositoryRoot()
- {
- return PlexusTestCase.getTestFile( "target/scm-test/repository/trunk" );
- }
-
- protected File getWorkingCopy()
- {
- return PlexusTestCase.getTestFile( "target/scm-test/working-copy" );
- }
-
- protected File getAssertionCopy()
- {
- return PlexusTestCase.getTestFile( "target/scm-test/assertion-copy" );
- }
-
- protected void setUp()
- throws Exception
- {
- super.setUp();
-
- File repositoryRoot = getRepositoryRoot();
-
- if ( repositoryRoot.exists() )
- {
- FileUtils.deleteDirectory( repositoryRoot );
- }
-
- assertTrue( "Could not make the repository root directory: " + repositoryRoot.getAbsolutePath(), repositoryRoot
- .mkdirs() );
-
- workingDirectory = getWorkingCopy();
-
- if ( workingDirectory.exists() )
- {
- FileUtils.deleteDirectory( workingDirectory );
- }
-
- assertTrue( "Could not make the working directory: " + workingDirectory.getAbsolutePath(), workingDirectory
- .mkdirs() );
-
- assertionDirectory = getAssertionCopy();
-
- if ( assertionDirectory.exists() )
- {
- FileUtils.deleteDirectory( assertionDirectory );
- }
-
- assertTrue( "Could not make the assertion directory: " + assertionDirectory.getAbsolutePath(),
- assertionDirectory.mkdirs() );
-
- initRepo();
-
- scmManager = getScmManager();
-
- repository = scmManager.makeScmRepository( getScmUrl() );
-
- CheckOutScmResult result = scmManager.getProviderByUrl( getScmUrl() )
- .checkOut( repository, new ScmFileSet( workingDirectory ), null );
-
- assertResultIsSuccess( result );
- }
-
public void testCheckInCommandTest()
throws Exception
{
// Make sure that the correct files was checked out
- File fooJava = new File( workingDirectory, "src/main/java/Foo.java" );
+ File fooJava = new File( getWorkingCopy(), "src/main/java/Foo.java" );
- File barJava = new File( workingDirectory, "src/main/java/Bar.java" );
+ File barJava = new File( getWorkingCopy(), "src/main/java/Bar.java" );
- File readmeTxt = new File( workingDirectory, "readme.txt" );
+ File readmeTxt = new File( getWorkingCopy(), "readme.txt" );
assertFalse( "check Foo.java doesn't yet exist", fooJava.canRead() );
@@ -165,13 +62,13 @@
changeReadmeTxt( readmeTxt );
- AddScmResult addResult = scmManager.getProviderByUrl( getScmUrl() )
- .add( repository, new ScmFileSet( workingDirectory, "src/main/java/Foo.java", null ) );
+ AddScmResult addResult = getScmManager().getProviderByUrl( getScmUrl() )
+ .add( getScmRepository(), new ScmFileSet( getWorkingCopy(), "src/main/java/Foo.java", null ) );
assertResultIsSuccess( addResult );
- CheckInScmResult result = scmManager.getProviderByUrl( getScmUrl() )
- .checkIn( repository, new ScmFileSet( workingDirectory ), null, "Commit message" );
+ CheckInScmResult result = getScmManager().getProviderByUrl( getScmUrl() )
+ .checkIn( getScmRepository(), new ScmFileSet( getWorkingCopy() ), null, "Commit message" );
assertResultIsSuccess( result );
@@ -201,16 +98,16 @@
assertNull( result.getCommandOutput() );
- CheckOutScmResult checkoutResult = scmManager.getProviderByUrl( getScmUrl() )
- .checkOut( repository, new ScmFileSet( assertionDirectory ), null );
+ CheckOutScmResult checkoutResult = getScmManager().getProviderByUrl( getScmUrl() )
+ .checkOut( getScmRepository(), new ScmFileSet( getAssertionCopy() ), null );
assertResultIsSuccess( checkoutResult );
- fooJava = new File( assertionDirectory, "src/main/java/Foo.java" );
+ fooJava = new File( getAssertionCopy(), "src/main/java/Foo.java" );
- barJava = new File( assertionDirectory, "src/main/java/Bar.java" );
+ barJava = new File( getAssertionCopy(), "src/main/java/Bar.java" );
- readmeTxt = new File( assertionDirectory, "readme.txt" );
+ readmeTxt = new File( getAssertionCopy(), "readme.txt" );
assertTrue( "check can read Foo.java", fooJava.canRead() );
@@ -225,11 +122,11 @@
throws Exception
{
// Make sure that the correct files was checked out
- File fooJava = new File( workingDirectory, "src/main/java/Foo.java" );
+ File fooJava = new File( getWorkingCopy(), "src/main/java/Foo.java" );
- File barJava = new File( workingDirectory, "src/main/java/Bar.java" );
+ File barJava = new File( getWorkingCopy(), "src/main/java/Bar.java" );
- File readmeTxt = new File( workingDirectory, "readme.txt" );
+ File readmeTxt = new File( getWorkingCopy(), "readme.txt" );
assertFalse( "check Foo.java doesn't yet exist", fooJava.canRead() );
@@ -244,13 +141,16 @@
changeReadmeTxt( readmeTxt );
- AddScmResult addResult = scmManager.getProviderByUrl( getScmUrl() )
- .add( repository, new ScmFileSet( workingDirectory, "src/main/java/Foo.java", null ) );
+ AddScmResult addResult = getScmManager().getProviderByUrl( getScmUrl() )
+ .add( getScmRepository(), new ScmFileSet( getWorkingCopy(), "src/main/java/Foo.java", null ) );
assertResultIsSuccess( addResult );
- CheckInScmResult result = scmManager.getProviderByUrl( getScmUrl() ).checkIn( repository, new ScmFileSet(
- workingDirectory, "**/Foo.java", null ), null, "Commit message" );
+ CheckInScmResult result = getScmManager().getProviderByUrl( getScmUrl() ).checkIn( getScmRepository(),
+ new ScmFileSet(
+ getWorkingCopy(),
+ "**/Foo.java", null ),
+ null, "Commit message" );
assertResultIsSuccess( result );
@@ -274,16 +174,16 @@
assertNull( result.getCommandOutput() );
- CheckOutScmResult checkoutResult = scmManager.getProviderByUrl( getScmUrl() )
- .checkOut( repository, new ScmFileSet( assertionDirectory ), null );
+ CheckOutScmResult checkoutResult = getScmManager().getProviderByUrl( getScmUrl() )
+ .checkOut( getScmRepository(), new ScmFileSet( getAssertionCopy() ), null );
assertResultIsSuccess( checkoutResult );
- fooJava = new File( assertionDirectory, "src/main/java/Foo.java" );
+ fooJava = new File( getAssertionCopy(), "src/main/java/Foo.java" );
- barJava = new File( assertionDirectory, "src/main/java/Bar.java" );
+ barJava = new File( getAssertionCopy(), "src/main/java/Bar.java" );
- readmeTxt = new File( assertionDirectory, "readme.txt" );
+ readmeTxt = new File( getAssertionCopy(), "readme.txt" );
assertTrue( "check can read Foo.java", fooJava.canRead() );
Modified: maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkout/CheckOutCommandTckTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkout/CheckOutCommandTckTest.java?rev=380682&r1=380681&r2=380682&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkout/CheckOutCommandTckTest.java (original)
+++ maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkout/CheckOutCommandTckTest.java Fri Feb 24 07:05:35 2006
@@ -17,15 +17,10 @@
*/
import org.apache.maven.scm.ScmFile;
-import org.apache.maven.scm.ScmFileSet;
-import org.apache.maven.scm.ScmTestCase;
+import org.apache.maven.scm.ScmTckTestCase;
import org.apache.maven.scm.command.checkout.CheckOutScmResult;
-import org.apache.maven.scm.manager.ScmManager;
-import org.apache.maven.scm.repository.ScmRepository;
-import org.codehaus.plexus.PlexusTestCase;
import org.codehaus.plexus.util.FileUtils;
-import java.io.File;
import java.util.Iterator;
import java.util.List;
import java.util.SortedSet;
@@ -33,100 +28,21 @@
/**
* This test tests the check out command.
- * <p/>
- * A check out has to produce these files:
- * <p/>
- * <ul>
- * <li>/pom.xml</li>
- * <li>/readme.txt</li>
- * <li>/src/main/java/Application.java</li>
- * <li>/src/test/java/Test.java</li>
- * </ul>
*
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
* @version $Id$
*/
public abstract class CheckOutCommandTckTest
- extends ScmTestCase
+ extends ScmTckTestCase
{
- private File workingDirectory;
-
- // ----------------------------------------------------------------------
- // Methods the provider test has to implement
- // ----------------------------------------------------------------------
-
- public abstract String getScmUrl()
- throws Exception;
-
- /**
- * Copy the existing checked in repository to the working directory.
- * <p/>
- * (src/test/repository/my-cvs-repository)
- *
- * @throws Exception
- */
- public abstract void initRepo()
- throws Exception;
-
- // ----------------------------------------------------------------------
- // Directories the test must use
- // ----------------------------------------------------------------------
-
- protected File getRepositoryRoot()
- {
- return PlexusTestCase.getTestFile( "target/scm-test/repository" );
- }
-
- protected File getWorkingCopy()
- {
- return PlexusTestCase.getTestFile( "target/scm-test/working-copy" );
- }
-
- protected void setUp()
- throws Exception
- {
- super.setUp();
-
- File repositoryRoot = getRepositoryRoot();
-
- if ( repositoryRoot.exists() )
- {
- FileUtils.deleteDirectory( repositoryRoot );
- }
-
- assertTrue( "Could not make the repository root directory: " + repositoryRoot.getAbsolutePath(), repositoryRoot
- .mkdirs() );
-
- workingDirectory = getWorkingCopy();
-
- if ( workingDirectory.exists() )
- {
- FileUtils.deleteDirectory( workingDirectory );
- }
-
- assertTrue( "Could not make the working directory: " + workingDirectory.getAbsolutePath(), workingDirectory
- .mkdirs() );
-
- initRepo();
- }
-
public void testCheckOutCommandTest()
throws Exception
{
- String tag = null;
-
- ScmManager scmManager = getScmManager();
-
- ScmRepository repository = scmManager.makeScmRepository( getScmUrl() );
+ FileUtils.deleteDirectory( getWorkingCopy() );
- CheckOutScmResult result = scmManager.getProviderByUrl( getScmUrl() )
- .checkOut( repository, new ScmFileSet( workingDirectory ), tag );
+ CheckOutScmResult result = checkOut( getWorkingCopy(), getScmRepository() );
assertResultIsSuccess( result );
-
- assertNull( "The provider message wasn't null", result.getProviderMessage() );
-
- assertNull( "The command output wasn't null", result.getCommandOutput() );
List checkedOutFiles = result.getCheckedOutFiles();
Modified: maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/diff/DiffCommandTckTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/diff/DiffCommandTckTest.java?rev=380682&r1=380681&r2=380682&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/diff/DiffCommandTckTest.java (original)
+++ maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/diff/DiffCommandTckTest.java Fri Feb 24 07:05:35 2006
@@ -19,14 +19,11 @@
import org.apache.maven.scm.ScmFile;
import org.apache.maven.scm.ScmFileSet;
import org.apache.maven.scm.ScmFileStatus;
+import org.apache.maven.scm.ScmTckTestCase;
import org.apache.maven.scm.ScmTestCase;
-import org.apache.maven.scm.command.add.AddScmResult;
-import org.apache.maven.scm.command.checkout.CheckOutScmResult;
import org.apache.maven.scm.command.diff.DiffScmResult;
-import org.apache.maven.scm.manager.ScmManager;
+import org.apache.maven.scm.provider.ScmProvider;
import org.apache.maven.scm.repository.ScmRepository;
-import org.codehaus.plexus.PlexusTestCase;
-import org.codehaus.plexus.util.FileUtils;
import java.io.File;
import java.util.Iterator;
@@ -41,101 +38,13 @@
* @version $Id$
*/
public abstract class DiffCommandTckTest
- extends ScmTestCase
+ extends ScmTckTestCase
{
- // ----------------------------------------------------------------------
- // Methods the test has to implement
- // ----------------------------------------------------------------------
-
- public abstract String getScmUrl()
- throws Exception;
-
- /**
- * Copy the existing checked in repository to the working directory.
- * <p/>
- * (src/test/repository/my-cvs-repository)
- *
- * @throws Exception
- */
- public abstract void initRepo()
- throws Exception;
-
- private void checkOut( File workingDirectory, ScmRepository repository )
- throws Exception
- {
- CheckOutScmResult result = getScmManager().getProviderByUrl( getScmUrl() )
- .checkOut( repository, new ScmFileSet( workingDirectory ), null );
-
- assertTrue( "Check result was successful, output: " + result.getCommandOutput(), result.isSuccess() );
- }
-
- private void addToRepository( File workingDirectory, File file, ScmRepository repository )
- throws Exception
- {
- AddScmResult result =
- getScmManager().getProviderByUrl( getScmUrl() ).add( repository, new ScmFileSet( workingDirectory, file ) );
- assertTrue( "Check result was successful, output: " + result.getCommandOutput(), result.isSuccess() );
-
- List addedFiles = result.getAddedFiles();
-
- assertEquals( "Expected 1 files in the added files list " + addedFiles, 1, addedFiles.size() );
- }
-
- // ----------------------------------------------------------------------
- // Directories the test must use
- // ----------------------------------------------------------------------
-
- protected File getRepositoryRoot()
- {
- return PlexusTestCase.getTestFile( "target/scm-test/repository" );
- }
-
- protected File getWorkingCopy()
- {
- return PlexusTestCase.getTestFile( "target/scm-test/working-copy" );
- }
-
- protected File getUpdatingCopy()
- {
- return PlexusTestCase.getTestFile( "target/scm-test/updating-copy" );
- }
-
- // ----------------------------------------------------------------------
- // The test implementation
- // ----------------------------------------------------------------------
-
- public void setUp()
- throws Exception
- {
- super.setUp();
-
- FileUtils.deleteDirectory( getRepositoryRoot() );
-
- FileUtils.deleteDirectory( getWorkingCopy() );
-
- FileUtils.deleteDirectory( getUpdatingCopy() );
-
- initRepo();
- }
public void testDiffCommand()
throws Exception
{
- ScmRepository repository = makeScmRepository( getScmUrl() );
-
- checkOut( getWorkingCopy(), repository );
-
- // ----------------------------------------------------------------------
- // Assert that the required files is there
- // ----------------------------------------------------------------------
-
- assertFile( getWorkingCopy(), "/pom.xml" );
-
- assertFile( getWorkingCopy(), "/readme.txt" );
-
- assertFile( getWorkingCopy(), "/src/main/java/Application.java" );
-
- assertFile( getWorkingCopy(), "/src/test/java/Test.java" );
+ ScmRepository repository = getScmRepository();
// ----------------------------------------------------------------------
// Change the files
@@ -156,39 +65,33 @@
// /project.xml
ScmTestCase.makeFile( getWorkingCopy(), "/project.xml", "changed project.xml" );
- addToRepository( getWorkingCopy(), new File( "project.xml" ), repository );
+ addToWorkingTree( getWorkingCopy(), new File( "project.xml" ), repository );
// /src/test/java/org
ScmTestCase.makeDirectory( getWorkingCopy(), "/src/test/java/org" );
- addToRepository( getWorkingCopy(), new File( "src/test/java/org" ), repository );
+ addToWorkingTree( getWorkingCopy(), new File( "src/test/java/org" ), repository );
// /src/main/java/org/Foo.java
ScmTestCase.makeFile( getWorkingCopy(), "/src/main/java/org/Foo.java" );
- addToRepository( getWorkingCopy(), new File( "src/main/java/org" ), repository );
+ addToWorkingTree( getWorkingCopy(), new File( "src/main/java/org" ), repository );
// src/main/java/org/Foo.java
- addToRepository( getWorkingCopy(), new File( "src/main/java/org/Foo.java" ), repository );
+ addToWorkingTree( getWorkingCopy(), new File( "src/main/java/org/Foo.java" ), repository );
// ----------------------------------------------------------------------
// Diff the project
// ----------------------------------------------------------------------
- ScmManager scmManager = getScmManager();
-
- DiffScmResult result = scmManager.getProviderByUrl( getScmUrl() ).diff( repository,
- new ScmFileSet( getWorkingCopy() ),
- null, null );
+ ScmProvider provider = getScmManager().getProviderByUrl( getScmUrl() );
+ ScmFileSet fileSet = new ScmFileSet( getWorkingCopy() );
+ DiffScmResult result = provider.diff( repository, fileSet, null, null );
assertNotNull( "The command returned a null result.", result );
assertResultIsSuccess( result );
- assertNull( "The provider message wasn't null", result.getProviderMessage() );
-
- assertNull( "The command output wasn't null", result.getCommandOutput() );
-
List changedFiles = result.getChangedFiles();
Map differences = result.getDifferences();
@@ -203,54 +106,46 @@
Iterator files = new TreeSet( changedFiles ).iterator();
+ //Check Foo.java
ScmFile file = (ScmFile) files.next();
assertPath( "/src/main/java/org/Foo.java", file.getPath() );
- assertEquals( ScmFileStatus.MODIFIED, file.getStatus() );
+ assertTrue( isDiff( file.getStatus() ) );
- assertEquals( "@@ -0,0 +1 @@\n+/src/main/java/org/Foo.java\n\\ No newline at end of file\n", differences
- .get( file.getPath() ).toString() );
+ String postRangeStr = "+/src/main/java/org/Foo.java\n\\ No newline at end of file\n";
+ String actualStr = differences.get( file.getPath() ).toString();
+ assertTrue( actualStr.endsWith( postRangeStr ) );
+ //Check readme.txt
file = (ScmFile) files.next();
assertPath( "/readme.txt", file.getPath() );
- assertEquals( ScmFileStatus.MODIFIED, file.getStatus() );
+ assertTrue( isDiff( file.getStatus() ) );
- assertEquals(
- "@@ -1 +1 @@\n-/readme.txt\n\\ No newline at end of file\n+changed readme.txt\n\\ No newline at end of file\n",
- differences.get( file.getPath() ).toString() );
+ postRangeStr =
+ "-/readme.txt\n\\ No newline at end of file\n+changed readme.txt\n\\ No newline at end of file\n";
+ actualStr = differences.get( file.getPath() ).toString();
+ assertTrue( actualStr.endsWith( postRangeStr ) );
+ //Check project.xml
file = (ScmFile) files.next();
assertPath( "/project.xml", file.getPath() );
- assertEquals( "@@ -0,0 +1 @@\n+changed project.xml\n\\ No newline at end of file\n", differences
- .get( file.getPath() ).toString() );
+ postRangeStr = "+changed project.xml\n\\ No newline at end of file\n";
+ actualStr = differences.get( file.getPath() ).toString();
+ assertTrue( actualStr.endsWith( postRangeStr ) );
- assertEquals( ScmFileStatus.MODIFIED, file.getStatus() );
+ assertTrue( isDiff( file.getStatus() ) );
}
- // ----------------------------------------------------------------------
- // Assertions
- // ----------------------------------------------------------------------
-
- private void assertFile( File root, String fileName )
- throws Exception
+ /**
+ * TODO refactor into ScmFileResult
+ */
+ private static boolean isDiff( ScmFileStatus status )
{
- File file = new File( root, fileName );
-
- assertTrue( "Missing file: '" + file.getAbsolutePath() + "'.", file.exists() );
-
- assertTrue( "File isn't a file: '" + file.getAbsolutePath() + "'.", file.isFile() );
-
- String expected = fileName;
-
- String actual = FileUtils.fileRead( file );
-
- assertEquals( "The file doesn't contain the expected contents. File: " + file.getAbsolutePath(), expected,
- actual );
+ return status == ScmFileStatus.ADDED || status == ScmFileStatus.DELETED || status == ScmFileStatus.MODIFIED;
}
-
}
Modified: maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/status/StatusCommandTckTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/status/StatusCommandTckTest.java?rev=380682&r1=380681&r2=380682&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/status/StatusCommandTckTest.java (original)
+++ maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/status/StatusCommandTckTest.java Fri Feb 24 07:05:35 2006
@@ -16,23 +16,20 @@
* limitations under the License.
*/
+import java.io.File;
+import java.util.Iterator;
+import java.util.List;
+import java.util.TreeSet;
+
import org.apache.maven.scm.ScmFile;
import org.apache.maven.scm.ScmFileSet;
import org.apache.maven.scm.ScmFileStatus;
+import org.apache.maven.scm.ScmTckTestCase;
import org.apache.maven.scm.ScmTestCase;
-import org.apache.maven.scm.command.add.AddScmResult;
import org.apache.maven.scm.command.checkin.CheckInScmResult;
-import org.apache.maven.scm.command.checkout.CheckOutScmResult;
import org.apache.maven.scm.command.status.StatusScmResult;
import org.apache.maven.scm.manager.ScmManager;
import org.apache.maven.scm.repository.ScmRepository;
-import org.codehaus.plexus.PlexusTestCase;
-import org.codehaus.plexus.util.FileUtils;
-
-import java.io.File;
-import java.util.Iterator;
-import java.util.List;
-import java.util.TreeSet;
/**
* This test tests the status command.
@@ -53,45 +50,8 @@
* @version $Id$
*/
public abstract class StatusCommandTckTest
- extends ScmTestCase
+ extends ScmTckTestCase
{
- // ----------------------------------------------------------------------
- // Methods the test has to implement
- // ----------------------------------------------------------------------
-
- public abstract String getScmUrl()
- throws Exception;
-
- /**
- * Copy the existing checked in repository to the working directory.
- * <p/>
- * (src/test/repository/my-cvs-repository)
- *
- * @throws Exception
- */
- public abstract void initRepo()
- throws Exception;
-
- private void checkOut( File workingDirectory, ScmRepository repository )
- throws Exception
- {
- CheckOutScmResult result = getScmManager().getProviderByUrl( getScmUrl() )
- .checkOut( repository, new ScmFileSet( workingDirectory ), null );
-
- assertTrue( "Check result was successful, output: " + result.getCommandOutput(), result.isSuccess() );
- }
-
- private void addToRepository( File workingDirectory, File file, ScmRepository repository )
- throws Exception
- {
- AddScmResult result =
- getScmManager().getProviderByUrl( getScmUrl() ).add( repository, new ScmFileSet( workingDirectory, file ) );
- assertTrue( "Check result was successful, output: " + result.getCommandOutput(), result.isSuccess() );
-
- List addedFiles = result.getAddedFiles();
-
- assertEquals( "Expected 1 file in the added files list " + addedFiles, 1, addedFiles.size() );
- }
private void commit( File workingDirectory, ScmRepository repository )
throws Exception
@@ -106,65 +66,15 @@
assertEquals( "Expected 2 files in the committed files list " + committedFiles, 2, committedFiles.size() );
}
- // ----------------------------------------------------------------------
- // Directories the test must use
- // ----------------------------------------------------------------------
-
- protected File getRepositoryRoot()
- {
- return PlexusTestCase.getTestFile( "target/scm-test/repository" );
- }
-
- protected File getWorkingCopy()
- {
- return PlexusTestCase.getTestFile( "target/scm-test/working-copy" );
- }
-
- protected File getUpdatingCopy()
- {
- return PlexusTestCase.getTestFile( "target/scm-test/updating-copy" );
- }
-
- // ----------------------------------------------------------------------
- // The test implementation
- // ----------------------------------------------------------------------
-
- public void setUp()
- throws Exception
- {
- super.setUp();
-
- FileUtils.deleteDirectory( getRepositoryRoot() );
-
- FileUtils.deleteDirectory( getWorkingCopy() );
-
- FileUtils.deleteDirectory( getUpdatingCopy() );
-
- initRepo();
- }
public void testStatusCommand()
throws Exception
{
ScmRepository repository = makeScmRepository( getScmUrl() );
- checkOut( getWorkingCopy(), repository );
-
checkOut( getUpdatingCopy(), repository );
// ----------------------------------------------------------------------
- // Assert that the required files is there
- // ----------------------------------------------------------------------
-
- assertFile( getWorkingCopy(), "/pom.xml" );
-
- assertFile( getWorkingCopy(), "/readme.txt" );
-
- assertFile( getWorkingCopy(), "/src/main/java/Application.java" );
-
- assertFile( getWorkingCopy(), "/src/test/java/Test.java" );
-
- // ----------------------------------------------------------------------
// Change the files
// ----------------------------------------------------------------------
@@ -179,7 +89,7 @@
// /project.xml
ScmTestCase.makeFile( getWorkingCopy(), "/project.xml", "changed project.xml" );
- addToRepository( getWorkingCopy(), new File( "project.xml" ), repository );
+ addToWorkingTree( getWorkingCopy(), new File( "project.xml" ), repository );
commit( getWorkingCopy(), repository );
@@ -189,15 +99,15 @@
// /src/test/java/org
ScmTestCase.makeDirectory( getUpdatingCopy(), "/src/test/java/org" );
- addToRepository( getUpdatingCopy(), new File( "src/test/java/org" ), repository );
+ addToWorkingTree( getUpdatingCopy(), new File( "src/test/java/org" ), repository );
// /src/main/java/org/Foo.java
ScmTestCase.makeFile( getUpdatingCopy(), "/src/main/java/org/Foo.java" );
- addToRepository( getUpdatingCopy(), new File( "src/main/java/org" ), repository );
+ addToWorkingTree( getUpdatingCopy(), new File( "src/main/java/org" ), repository );
// src/main/java/org/Foo.java
- addToRepository( getUpdatingCopy(), new File( "src/main/java/org/Foo.java" ), repository );
+ addToWorkingTree( getUpdatingCopy(), new File( "src/main/java/org/Foo.java" ), repository );
ScmManager scmManager = getScmManager();
@@ -244,26 +154,5 @@
assertFile( getUpdatingCopy(), "/readme.txt" );
assertFalse( "project.xml created incorrectly", new File( getUpdatingCopy(), "/project.xml" ).exists() );
- }
-
- // ----------------------------------------------------------------------
- // Assertions
- // ----------------------------------------------------------------------
-
- private void assertFile( File root, String fileName )
- throws Exception
- {
- File file = new File( root, fileName );
-
- assertTrue( "Missing file: '" + file.getAbsolutePath() + "'.", file.exists() );
-
- assertTrue( "File isn't a file: '" + file.getAbsolutePath() + "'.", file.isFile() );
-
- String expected = fileName;
-
- String actual = FileUtils.fileRead( file );
-
- assertEquals( "The file doesn't contain the expected contents. File: " + file.getAbsolutePath(), expected,
- actual );
}
}
Modified: maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/tag/TagCommandTckTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/tag/TagCommandTckTest.java?rev=380682&r1=380681&r2=380682&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/tag/TagCommandTckTest.java (original)
+++ maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/tag/TagCommandTckTest.java Fri Feb 24 07:05:35 2006
@@ -17,13 +17,10 @@
*/
import org.apache.maven.scm.ScmFileSet;
-import org.apache.maven.scm.ScmTestCase;
+import org.apache.maven.scm.ScmTckTestCase;
import org.apache.maven.scm.command.checkin.CheckInScmResult;
import org.apache.maven.scm.command.checkout.CheckOutScmResult;
import org.apache.maven.scm.command.tag.TagScmResult;
-import org.apache.maven.scm.manager.ScmManager;
-import org.apache.maven.scm.repository.ScmRepository;
-import org.codehaus.plexus.PlexusTestCase;
import org.codehaus.plexus.util.FileUtils;
import java.io.File;
@@ -36,119 +33,34 @@
* @version $Id$
*/
public abstract class TagCommandTckTest
- extends ScmTestCase
+ extends ScmTckTestCase
{
- private File workingDirectory;
-
- // ----------------------------------------------------------------------
- // Methods the provider test has to implement
- // ----------------------------------------------------------------------
-
- public abstract String getScmUrl()
- throws Exception;
-
- /**
- * Copy the existing checked in repository to the working directory.
- * <p/>
- * (src/test/repository/my-cvs-repository)
- *
- * @throws Exception
- */
- public abstract void initRepo()
- throws Exception;
-
- // ----------------------------------------------------------------------
- // Directories the test must use
- // ----------------------------------------------------------------------
-
- protected File getRepositoryRoot()
- {
- return PlexusTestCase.getTestFile( "target/scm-test/repository" );
- }
-
- protected File getWorkingCopy()
- {
- return PlexusTestCase.getTestFile( "target/scm-test/working-copy" );
- }
-
- protected File getAssertionCopy()
- {
- return PlexusTestCase.getTestFile( "target/scm-test/assertion-copy" );
- }
-
- protected void setUp()
- throws Exception
- {
- super.setUp();
-
- File repositoryRoot = getRepositoryRoot();
-
- if ( repositoryRoot.exists() )
- {
- FileUtils.deleteDirectory( repositoryRoot );
- }
-
- assertTrue( "Could not make the repository root directory: " + repositoryRoot.getAbsolutePath(), repositoryRoot
- .mkdirs() );
-
- workingDirectory = getWorkingCopy();
-
- if ( workingDirectory.exists() )
- {
- FileUtils.deleteDirectory( workingDirectory );
- }
-
- assertTrue( "Could not make the working directory: " + workingDirectory.getAbsolutePath(), workingDirectory
- .mkdirs() );
-
- File assertionDirectory = getAssertionCopy();
-
- if ( assertionDirectory.exists() )
- {
- FileUtils.deleteDirectory( assertionDirectory );
- }
-
- assertTrue( "Could not make the assertion directory: " + assertionDirectory.getAbsolutePath(),
- assertionDirectory.mkdirs() );
-
- initRepo();
- }
public void testTagCommandTest()
throws Exception
{
- ScmManager scmManager = getScmManager();
-
- ScmRepository repository = getScmRepository( scmManager );
-
- CheckOutScmResult checkoutResult = scmManager.getProviderByUrl( getScmUrl() )
- .checkOut( repository, new ScmFileSet( workingDirectory ), null );
-
- assertResultIsSuccess( checkoutResult );
-
String tag = "test-tag";
- TagScmResult tagResult =
- scmManager.getProviderByUrl( getScmUrl() ).tag( repository, new ScmFileSet( workingDirectory ), tag );
+ TagScmResult tagResult = getScmManager().getProviderByUrl( getScmUrl() )
+ .tag( getScmRepository(), new ScmFileSet( getWorkingCopy() ), tag );
assertResultIsSuccess( tagResult );
assertEquals( "check all 4 files tagged", 4, tagResult.getTaggedFiles().size() );
- File readmeTxt = new File( workingDirectory, "readme.txt" );
+ File readmeTxt = new File( getWorkingCopy(), "readme.txt" );
assertEquals( "check readme.txt contents", "/readme.txt", FileUtils.fileRead( readmeTxt ) );
changeReadmeTxt( readmeTxt );
- CheckInScmResult checkinResult = scmManager.getProviderByUrl( getScmUrl() )
- .checkIn( repository, new ScmFileSet( workingDirectory ), null, "commit message" );
+ CheckInScmResult checkinResult = getScmManager().getProviderByUrl( getScmUrl() )
+ .checkIn( getScmRepository(), new ScmFileSet( getWorkingCopy() ), null, "commit message" );
assertResultIsSuccess( checkinResult );
- checkoutResult = scmManager.getProviderByUrl( getScmUrl() ).checkOut( repository,
- new ScmFileSet( getAssertionCopy() ),
- null );
+ CheckOutScmResult checkoutResult = getScmManager().getProviderByUrl( getScmUrl() )
+ .checkOut( getScmRepository(), new ScmFileSet( getAssertionCopy() ), null );
assertResultIsSuccess( checkoutResult );
@@ -160,19 +72,13 @@
assertFalse( "check previous assertion copy deleted", getAssertionCopy().exists() );
- checkoutResult = scmManager.getProviderByUrl( getScmUrl() )
- .checkOut( repository, new ScmFileSet( getAssertionCopy() ), tag );
+ checkoutResult = getScmManager().getProviderByUrl( getScmUrl() )
+ .checkOut( getScmRepository(), new ScmFileSet( getAssertionCopy() ), tag );
assertResultIsSuccess( checkoutResult );
assertEquals( "check readme.txt contents is from tagged version", "/readme.txt",
FileUtils.fileRead( readmeTxt ) );
- }
-
- protected ScmRepository getScmRepository( ScmManager scmManager )
- throws Exception
- {
- return scmManager.makeScmRepository( getScmUrl() );
}
private void changeReadmeTxt( File readmeTxt )
Modified: maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/update/UpdateCommandTckTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/update/UpdateCommandTckTest.java?rev=380682&r1=380681&r2=380682&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/update/UpdateCommandTckTest.java (original)
+++ maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/update/UpdateCommandTckTest.java Fri Feb 24 07:05:35 2006
@@ -16,23 +16,20 @@
* limitations under the License.
*/
+import java.io.File;
+import java.util.Iterator;
+import java.util.List;
+import java.util.TreeSet;
+
import org.apache.maven.scm.ScmFile;
import org.apache.maven.scm.ScmFileSet;
import org.apache.maven.scm.ScmFileStatus;
+import org.apache.maven.scm.ScmTckTestCase;
import org.apache.maven.scm.ScmTestCase;
-import org.apache.maven.scm.command.add.AddScmResult;
import org.apache.maven.scm.command.checkin.CheckInScmResult;
-import org.apache.maven.scm.command.checkout.CheckOutScmResult;
import org.apache.maven.scm.command.update.UpdateScmResult;
import org.apache.maven.scm.manager.ScmManager;
import org.apache.maven.scm.repository.ScmRepository;
-import org.codehaus.plexus.PlexusTestCase;
-import org.codehaus.plexus.util.FileUtils;
-
-import java.io.File;
-import java.util.Iterator;
-import java.util.List;
-import java.util.TreeSet;
/**
* This test tests the update command.
@@ -53,46 +50,8 @@
* @version $Id$
*/
public abstract class UpdateCommandTckTest
- extends ScmTestCase
+ extends ScmTckTestCase
{
- // ----------------------------------------------------------------------
- // Methods the test has to implement
- // ----------------------------------------------------------------------
-
- public abstract String getScmUrl()
- throws Exception;
-
- /**
- * Copy the existing checked in repository to the working directory.
- * <p/>
- * (src/test/repository/my-cvs-repository)
- *
- * @throws Exception
- */
- public abstract void initRepo()
- throws Exception;
-
- private void checkOut( File workingDirectory, ScmRepository repository )
- throws Exception
- {
- CheckOutScmResult result = getScmManager().getProviderByUrl( getScmUrl() )
- .checkOut( repository, new ScmFileSet( workingDirectory ), null );
-
- assertTrue( "Check result was successful, output: " + result.getCommandOutput(), result.isSuccess() );
- }
-
- private void addToRepository( File workingDirectory, File file, ScmRepository repository )
- throws Exception
- {
- AddScmResult result =
- getScmManager().getProviderByUrl( getScmUrl() ).add( repository, new ScmFileSet( workingDirectory, file ) );
-
- assertTrue( "Check result was successful, output: " + result.getCommandOutput(), result.isSuccess() );
-
- List addedFiles = result.getAddedFiles();
-
- assertEquals( "Expected 1 file in the added files list " + addedFiles, 1, addedFiles.size() );
- }
private void commit( File workingDirectory, ScmRepository repository )
throws Exception
@@ -107,65 +66,14 @@
assertEquals( "Expected 3 files in the committed files list " + committedFiles, 3, committedFiles.size() );
}
- // ----------------------------------------------------------------------
- // Directories the test must use
- // ----------------------------------------------------------------------
-
- protected File getRepositoryRoot()
- {
- return PlexusTestCase.getTestFile( "target/scm-test/repository" );
- }
-
- protected File getWorkingCopy()
- {
- return PlexusTestCase.getTestFile( "target/scm-test/working-copy" );
- }
-
- protected File getUpdatingCopy()
- {
- return PlexusTestCase.getTestFile( "target/scm-test/updating-copy" );
- }
-
- // ----------------------------------------------------------------------
- // The test implementation
- // ----------------------------------------------------------------------
-
- public void setUp()
- throws Exception
- {
- super.setUp();
-
- FileUtils.deleteDirectory( getRepositoryRoot() );
-
- FileUtils.deleteDirectory( getWorkingCopy() );
-
- FileUtils.deleteDirectory( getUpdatingCopy() );
-
- initRepo();
- }
-
public void testUpdateCommand()
throws Exception
{
ScmRepository repository = makeScmRepository( getScmUrl() );
- checkOut( getWorkingCopy(), repository );
-
checkOut( getUpdatingCopy(), repository );
// ----------------------------------------------------------------------
- // Assert that the required files is there
- // ----------------------------------------------------------------------
-
- assertFile( getWorkingCopy(), "/pom.xml" );
-
- assertFile( getWorkingCopy(), "/readme.txt" );
-
- assertFile( getWorkingCopy(), "/src/main/java/Application.java" );
-
- assertFile( getWorkingCopy(), "/src/test/java/Test.java" );
-
- // ----------------------------------------------------------------------
// Change the files
// ----------------------------------------------------------------------
@@ -184,20 +92,20 @@
// /project.xml
ScmTestCase.makeFile( getWorkingCopy(), "/project.xml", "changed project.xml" );
- addToRepository( getWorkingCopy(), new File( "project.xml" ), repository );
+ addToWorkingTree( getWorkingCopy(), new File( "project.xml" ), repository );
// /src/test/java/org
ScmTestCase.makeDirectory( getWorkingCopy(), "/src/test/java/org" );
- addToRepository( getWorkingCopy(), new File( "src/test/java/org" ), repository );
+ addToWorkingTree( getWorkingCopy(), new File( "src/test/java/org" ), repository );
// /src/main/java/org/Foo.java
ScmTestCase.makeFile( getWorkingCopy(), "/src/main/java/org/Foo.java" );
- addToRepository( getWorkingCopy(), new File( "src/main/java/org" ), repository );
+ addToWorkingTree( getWorkingCopy(), new File( "src/main/java/org" ), repository );
// src/main/java/org/Foo.java
- addToRepository( getWorkingCopy(), new File( "src/main/java/org/Foo.java" ), repository );
+ addToWorkingTree( getWorkingCopy(), new File( "src/main/java/org/Foo.java" ), repository );
ScmManager scmManager = getScmManager();
@@ -241,7 +149,7 @@
// Need to accommodate CVS' weirdness. TODO: Should the API hide this somehow?
//assertEquals( ScmFileStatus.ADDED, file.getStatus() );
assertTrue(
- ScmFileStatus.ADDED.equals( file.getStatus() ) || ScmFileStatus.UPDATED.equals( file.getStatus() ) );
+ ScmFileStatus.ADDED.equals( file.getStatus() ) || ScmFileStatus.UPDATED == file.getStatus() );
file = (ScmFile) files.next();
@@ -258,26 +166,5 @@
//assertEquals( ScmFileStatus.ADDED, file.getStatus() );
assertTrue(
ScmFileStatus.ADDED.equals( file.getStatus() ) || ScmFileStatus.UPDATED.equals( file.getStatus() ) );
- }
-
- // ----------------------------------------------------------------------
- // Assertions
- // ----------------------------------------------------------------------
-
- private void assertFile( File root, String fileName )
- throws Exception
- {
- File file = new File( root, fileName );
-
- assertTrue( "Missing file: '" + file.getAbsolutePath() + "'.", file.exists() );
-
- assertTrue( "File isn't a file: '" + file.getAbsolutePath() + "'.", file.isFile() );
-
- String expected = fileName;
-
- String actual = FileUtils.fileRead( file );
-
- assertEquals( "The file doesn't contain the expected contents. File: " + file.getAbsolutePath(), expected,
- actual );
}
}