You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by da...@apache.org on 2014/06/20 23:22:13 UTC
git commit: [SCM-755] Inject SecDispatcher into TCK base test case so
that individual provider TCK can use it [SCM-756] Adjust base command tests
to set all to be changed test files to use edit mode for provider like
Perforce/Starteam [SCM-754] Dont chec
Repository: maven-scm
Updated Branches:
refs/heads/master ce82bd066 -> a72a7cb46
[SCM-755] Inject SecDispatcher into TCK base test case so that individual provider TCK can use it
[SCM-756] Adjust base command tests to set all to be changed test files to use edit mode for provider like Perforce/Starteam
[SCM-754] Dont check for number of file list return from Tag/Branch Command test
Project: http://git-wip-us.apache.org/repos/asf/maven-scm/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-scm/commit/a72a7cb4
Tree: http://git-wip-us.apache.org/repos/asf/maven-scm/tree/a72a7cb4
Diff: http://git-wip-us.apache.org/repos/asf/maven-scm/diff/a72a7cb4
Branch: refs/heads/master
Commit: a72a7cb46226266704994b5d9a57a0ab64259db8
Parents: ce82bd0
Author: dantran <da...@gmail.com>
Authored: Fri Jun 20 14:17:32 2014 -0700
Committer: dantran <da...@gmail.com>
Committed: Fri Jun 20 14:17:32 2014 -0700
----------------------------------------------------------------------
maven-scm-test/pom.xml | 8 ++++++
.../org/apache/maven/scm/ScmTckTestCase.java | 13 +++++++++
.../java/org/apache/maven/scm/ScmTestCase.java | 21 ++++++++++++++
.../tck/command/blame/BlameCommandTckTest.java | 1 +
.../command/branch/BranchCommandTckTest.java | 11 ++++++--
.../changelog/ChangeLogCommandTckTest.java | 12 ++++++--
.../command/status/StatusCommandTckTest.java | 6 ++++
.../scm/tck/command/tag/TagCommandTckTest.java | 4 ++-
.../command/update/UpdateCommandTckTest.java | 29 ++++++++++----------
9 files changed, 85 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/a72a7cb4/maven-scm-test/pom.xml
----------------------------------------------------------------------
diff --git a/maven-scm-test/pom.xml b/maven-scm-test/pom.xml
index 36aa0e5..a3ca1a3 100644
--- a/maven-scm-test/pom.xml
+++ b/maven-scm-test/pom.xml
@@ -42,5 +42,13 @@
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-manager-plexus</artifactId>
</dependency>
+
+ <dependency>
+ <groupId>org.sonatype.plexus</groupId>
+ <artifactId>plexus-sec-dispatcher</artifactId>
+ <version>1.3</version>
+
+ </dependency>
+
</dependencies>
</project>
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/a72a7cb4/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTckTestCase.java
----------------------------------------------------------------------
diff --git a/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTckTestCase.java b/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTckTestCase.java
index 703d0f0..89471ac 100644
--- a/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTckTestCase.java
+++ b/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTckTestCase.java
@@ -29,6 +29,7 @@ import java.util.TreeMap;
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.edit.EditScmResult;
import org.apache.maven.scm.provider.ScmProvider;
import org.apache.maven.scm.repository.ScmRepository;
import org.codehaus.plexus.util.StringUtils;
@@ -242,4 +243,16 @@ public abstract class ScmTckTestCase
return mappedFiles;
}
+
+ protected EditScmResult edit( File basedir, String includes, String excludes, ScmRepository repository )
+ throws Exception
+ {
+ if ( this.getScmManager().getProviderByRepository( this.getScmRepository() ).requiresEditMode() )
+ {
+ ScmFileSet fileSet = new ScmFileSet( basedir, includes, excludes );
+ return getScmManager().edit( getScmRepository(), fileSet );
+ }
+ return new EditScmResult( "", "", "", true );
+ }
+
}
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/a72a7cb4/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java
----------------------------------------------------------------------
diff --git a/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java b/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java
index c4b148f..b83cd82 100644
--- a/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java
+++ b/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java
@@ -28,6 +28,7 @@ import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.util.cli.CommandLineUtils;
import org.codehaus.plexus.util.cli.CommandLineUtils.StringStreamConsumer;
import org.codehaus.plexus.util.cli.Commandline;
+import org.sonatype.plexus.components.sec.dispatcher.SecDispatcher;
import java.io.File;
import java.io.FileWriter;
@@ -55,6 +56,8 @@ public abstract class ScmTestCase
private ScmManager scmManager;
+ private SecDispatcher secDispatcher;
+
protected void setUp()
throws Exception
{
@@ -142,6 +145,24 @@ public abstract class ScmTestCase
return scmManager;
}
+ /**
+ * If you wish to use this component, makesure to configure your
+ * TCK implementation to include plexus component configuration
+ * as doc at https://jira.codehaus.org/browse/MNG-4384
+ * @return SecDispatcher
+ * @throws Exception
+ */
+ public SecDispatcher getSecDispatcher()
+ throws Exception
+ {
+ if ( secDispatcher == null )
+ {
+ secDispatcher = (SecDispatcher) lookup( SecDispatcher.ROLE, "mng-4384" );
+ }
+
+ return secDispatcher;
+ }
+
protected ScmRepository makeScmRepository( String scmUrl )
throws Exception
{
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/a72a7cb4/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/blame/BlameCommandTckTest.java
----------------------------------------------------------------------
diff --git a/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/blame/BlameCommandTckTest.java b/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/blame/BlameCommandTckTest.java
index 71f0423..e5cba29 100644
--- a/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/blame/BlameCommandTckTest.java
+++ b/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/blame/BlameCommandTckTest.java
@@ -67,6 +67,7 @@ public abstract class BlameCommandTckTest
// pause a couple seconds...
Thread.sleep( 2000 );
//Make a change to the readme.txt and commit the change
+ this.edit( getWorkingCopy(), "readme.txt", null, getScmRepository() );
ScmTestCase.makeFile( getWorkingCopy(), "/readme.txt", "changed readme.txt" );
CheckInScmResult checkInResult = provider.checkIn( getScmRepository(), fileSet, COMMIT_MSG );
assertTrue( "Unable to checkin changes to the repository", checkInResult.isSuccess() );
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/a72a7cb4/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/branch/BranchCommandTckTest.java
----------------------------------------------------------------------
diff --git a/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/branch/BranchCommandTckTest.java b/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/branch/BranchCommandTckTest.java
index 72c202a..62e657b 100644
--- a/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/branch/BranchCommandTckTest.java
+++ b/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/branch/BranchCommandTckTest.java
@@ -41,10 +41,15 @@ public abstract class BranchCommandTckTest
extends ScmTckTestCase
{
+ protected String getBranch()
+ {
+ return "test-branch";
+ }
+
public void testBranchCommandTest()
throws Exception
{
- String branch = "test-branch";
+ String branch = getBranch();
@SuppressWarnings( "deprecation" ) BranchScmResult branchResult =
getScmManager().getProviderByUrl( getScmUrl() ).branch( getScmRepository(),
@@ -52,12 +57,14 @@ public abstract class BranchCommandTckTest
assertResultIsSuccess( branchResult );
- assertEquals( "check all 4 files branched", 4, branchResult.getBranchedFiles().size() );
+ // see https://jira.codehaus.org/browse/SCM-754
+ //assertEquals( "check all 4 files branched", 4, branchResult.getBranchedFiles().size() );
File readmeTxt = new File( getWorkingCopy(), "readme.txt" );
assertEquals( "check readme.txt contents", "/readme.txt", FileUtils.fileRead( readmeTxt ) );
+ this.edit( getWorkingCopy(), "readme.txt", null, getScmRepository() );
changeReadmeTxt( readmeTxt );
CheckInScmResult checkinResult =
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/a72a7cb4/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/changelog/ChangeLogCommandTckTest.java
----------------------------------------------------------------------
diff --git a/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/changelog/ChangeLogCommandTckTest.java b/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/changelog/ChangeLogCommandTckTest.java
index 1242c9c..f1a843d 100644
--- a/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/changelog/ChangeLogCommandTckTest.java
+++ b/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/changelog/ChangeLogCommandTckTest.java
@@ -53,12 +53,15 @@ public abstract class ChangeLogCommandTckTest
ScmProvider provider = getScmManager().getProviderByRepository( getScmRepository() );
ScmFileSet fileSet = new ScmFileSet( getWorkingCopy() );
- //We should have one log entry for the initial repository
ChangeLogScmResult firstResult =
provider.changeLog( getScmRepository(), fileSet, null, null, 0, (ScmBranch) null, null );
assertTrue( firstResult.getProviderMessage() + ": " + firstResult.getCommandLine() + "\n" + firstResult.getCommandOutput(),
firstResult.isSuccess() );
- assertEquals( 1, firstResult.getChangeLog().getChangeSets().size() );
+
+ //for svn, cvs, git, the repo get recreated for each test and therefore initial changelog size is 1
+ // for SCM like perforce, it is not possible to recreate the repo, therefor the size will be greater then 1
+ int firstLogSize = firstResult.getChangeLog().getChangeSets().size();
+ assertTrue( "Unexpected initial log size", firstLogSize >= 1 );
//Make a timestamp that we know are after initial revision but before the second
Date timeBeforeSecond = new Date(); //Current time
@@ -67,13 +70,14 @@ public abstract class ChangeLogCommandTckTest
Thread.sleep( 2000 );
//Make a change to the readme.txt and commit the change
+ this.edit( getWorkingCopy(), "readme.txt", null, getScmRepository() );
ScmTestCase.makeFile( getWorkingCopy(), "/readme.txt", "changed readme.txt" );
CheckInScmResult checkInResult = provider.checkIn( getScmRepository(), fileSet, COMMIT_MSG );
assertTrue( "Unable to checkin changes to the repository", checkInResult.isSuccess() );
ChangeLogScmResult secondResult = provider.changeLog( getScmRepository(), fileSet, (ScmVersion) null, null );
assertTrue( secondResult.getProviderMessage(), secondResult.isSuccess() );
- assertEquals( 2, secondResult.getChangeLog().getChangeSets().size() );
+ assertEquals( firstLogSize + 1, secondResult.getChangeLog().getChangeSets().size() );
//Now only retrieve the changelog after timeBeforeSecondChangeLog
Date currentTime = new Date();
@@ -85,6 +89,8 @@ public abstract class ChangeLogCommandTckTest
assertEquals( 1, thirdResult.getChangeLog().getChangeSets().size() );
ChangeSet changeset = thirdResult.getChangeLog().getChangeSets().get( 0 );
assertTrue( changeset.getDate().after( timeBeforeSecond ) );
+
+
assertEquals( COMMIT_MSG, changeset.getComment() );
}
}
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/a72a7cb4/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/status/StatusCommandTckTest.java
----------------------------------------------------------------------
diff --git a/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/status/StatusCommandTckTest.java b/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/status/StatusCommandTckTest.java
index 8c822d2..71ba0e3 100644
--- a/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/status/StatusCommandTckTest.java
+++ b/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/status/StatusCommandTckTest.java
@@ -86,6 +86,7 @@ public abstract class StatusCommandTckTest
*/
// /readme.txt
+ this.edit( getWorkingCopy(), "readme.txt", null, getScmRepository() );
ScmTestCase.makeFile( getWorkingCopy(), "/readme.txt", "changed readme.txt" );
// /project.xml
@@ -96,6 +97,7 @@ public abstract class StatusCommandTckTest
commit( getWorkingCopy(), repository );
// /pom.xml
+ this.edit( getUpdatingCopy(), "pom.xml", null, repository );
ScmTestCase.makeFile( getUpdatingCopy(), "/pom.xml", "changed pom.xml" );
// /src/test/java/org
@@ -123,6 +125,10 @@ public abstract class StatusCommandTckTest
StatusScmResult result = scmManager.getProviderByUrl( getScmUrl() )
.status( repository, new ScmFileSet( getUpdatingCopy() ) );
+ //this is needed for perforce so that teardown can remove its workspace, not harm for cvs/svn/git
+ commit( getUpdatingCopy(), repository );
+
+
assertNotNull( "The command returned a null result.", result );
assertResultIsSuccess( result );
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/a72a7cb4/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/tag/TagCommandTckTest.java
----------------------------------------------------------------------
diff --git a/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/tag/TagCommandTckTest.java b/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/tag/TagCommandTckTest.java
index 332083b..296d676 100644
--- a/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/tag/TagCommandTckTest.java
+++ b/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/tag/TagCommandTckTest.java
@@ -52,12 +52,14 @@ public abstract class TagCommandTckTest
assertResultIsSuccess( tagResult );
- assertEquals( "check all 4 files tagged", 4, tagResult.getTaggedFiles().size() );
+ // see https://jira.codehaus.org/browse/SCM-754
+ // assertEquals( "check all 4 files tagged", 4, tagResult.getTaggedFiles().size() );
File readmeTxt = new File( getWorkingCopy(), "readme.txt" );
assertEquals( "check readme.txt contents", "/readme.txt", FileUtils.fileRead( readmeTxt ) );
+ this.edit( getWorkingCopy(), "readme.txt", null, getScmRepository() );
changeReadmeTxt( readmeTxt );
CheckInScmResult checkinResult =
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/a72a7cb4/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/update/UpdateCommandTckTest.java
----------------------------------------------------------------------
diff --git a/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/update/UpdateCommandTckTest.java b/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/update/UpdateCommandTckTest.java
index cc1c7bc..88a1718 100644
--- a/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/update/UpdateCommandTckTest.java
+++ b/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/update/UpdateCommandTckTest.java
@@ -76,15 +76,15 @@ public abstract class UpdateCommandTckTest
public void testUpdateCommand()
throws Exception
{
-
+
deleteDirectory( getUpdatingCopy() );
-
- assertFalse( getUpdatingCopy().exists() );
-
+
+ assertFalse( getUpdatingCopy().exists() );
+
//deleteDirectory( getWorkingCopy() );
-
+
//assertFalse( getUpdatingCopy().exists() );
-
+
ScmRepository repository = makeScmRepository( getScmUrl() );
checkOut( getUpdatingCopy(), repository );
@@ -103,38 +103,39 @@ public abstract class UpdateCommandTckTest
*/
// /readme.txt
+ this.edit( getWorkingCopy(), "readme.txt", null, getScmRepository() );
ScmTestCase.makeFile( getWorkingCopy(), "/readme.txt", "changed readme.txt" );
// /project.xml
ScmTestCase.makeFile( getWorkingCopy(), "/project.xml", "changed project.xml" );
- addToWorkingTree( getWorkingCopy(), new File( "project.xml" ), repository );
+ addToWorkingTree( getWorkingCopy(), new File( "project.xml" ), getScmRepository() );
// /src/test/java/org
ScmTestCase.makeDirectory( getWorkingCopy(), "/src/test/java/org" );
- addToWorkingTree( getWorkingCopy(), new File( "src/test/java/org" ), repository );
+ addToWorkingTree( getWorkingCopy(), new File( "src/test/java/org" ), getScmRepository() );
// /src/main/java/org/Foo.java
ScmTestCase.makeFile( getWorkingCopy(), "/src/main/java/org/Foo.java" );
- addToWorkingTree( getWorkingCopy(), new File( "src/main/java/org" ), repository );
+ addToWorkingTree( getWorkingCopy(), new File( "src/main/java/org" ), getScmRepository() );
// src/main/java/org/Foo.java
- addToWorkingTree( getWorkingCopy(), new File( "src/main/java/org/Foo.java" ), repository );
+ addToWorkingTree( getWorkingCopy(), new File( "src/main/java/org/Foo.java" ), getScmRepository() );
ScmManager scmManager = getScmManager();
Date lastUpdate = new Date( System.currentTimeMillis() - 1000000 );
- commit( getWorkingCopy(), repository );
+ commit( getWorkingCopy(), getScmRepository() );
Thread.sleep( 5000 );
-
+
// ----------------------------------------------------------------------
// Update the project
// ----------------------------------------------------------------------
-
+
UpdateScmResult result = scmManager.update( repository, new ScmFileSet( getUpdatingCopy() ), lastUpdate );
assertNotNull( "The command returned a null result.", result );
@@ -179,5 +180,5 @@ public abstract class UpdateCommandTckTest
//TODO : Consolidate file status so that we can remove "|| ADDED" term
assertTrue( file.getStatus().isUpdate() || file.getStatus() == ScmFileStatus.ADDED );
}
-
+
}