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 );
     }
-    
+
 }