You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2012/11/18 17:21:05 UTC
git commit: [SCM-435] can not work with local copy
Updated Branches:
refs/heads/SCM-435 [created] c96ca2477
[SCM-435] can not work with local copy
Project: http://git-wip-us.apache.org/repos/asf/maven-scm/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-scm/commit/c96ca247
Tree: http://git-wip-us.apache.org/repos/asf/maven-scm/tree/c96ca247
Diff: http://git-wip-us.apache.org/repos/asf/maven-scm/diff/c96ca247
Branch: refs/heads/SCM-435
Commit: c96ca2477eb0c8227631784417173afa7805a410
Parents: c23125b
Author: rfscholte <rf...@apache.org>
Authored: Sun Nov 18 17:20:06 2012 +0100
Committer: rfscholte <rf...@apache.org>
Committed: Sun Nov 18 17:20:06 2012 +0100
----------------------------------------------------------------------
.../maven-scm-provider-svnexe/pom.xml | 12 +++
.../scm/provider/svn/svnexe/SvnExeScmProvider.java | 9 +-
.../provider/svn/svnexe/SvnExeScmProviderTest.java | 78 +++++++++++++++
3 files changed, 96 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/c96ca247/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/pom.xml
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/pom.xml b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/pom.xml
index 62ade84..eb5cbef 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/pom.xml
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/pom.xml
@@ -33,6 +33,12 @@
<name>Maven SCM Subversion Provider - SVN Executable Impl.</name>
<description>Executable library for SCM SVN Provider.</description>
+ <contributors>
+ <contributor>
+ <name>James Nord</name>
+ </contributor>
+ </contributors>
+
<dependencies>
<dependency>
<groupId>org.apache.maven.scm</groupId>
@@ -53,6 +59,12 @@
<artifactId>maven-scm-provider-svntest</artifactId>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <version>1.9.5</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/c96ca247/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/SvnExeScmProvider.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/SvnExeScmProvider.java b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/SvnExeScmProvider.java
index 6d63d12..06393d1 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/SvnExeScmProvider.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/SvnExeScmProvider.java
@@ -19,6 +19,8 @@ package org.apache.maven.scm.provider.svn.svnexe;
* under the License.
*/
+import java.io.File;
+
import org.apache.maven.scm.CommandParameters;
import org.apache.maven.scm.ScmException;
import org.apache.maven.scm.ScmFileSet;
@@ -45,8 +47,6 @@ import org.apache.maven.scm.provider.svn.svnexe.command.tag.SvnTagCommand;
import org.apache.maven.scm.provider.svn.svnexe.command.update.SvnUpdateCommand;
import org.apache.maven.scm.repository.ScmRepositoryException;
-import java.io.File;
-
/**
* @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
*
@@ -180,7 +180,10 @@ public class SvnExeScmProvider
{
// Note: I need to supply just 1 absolute path, but ScmFileSet won't let me without
// a basedir (which isn't used here anyway), so use a dummy file.
- InfoScmResult result = info( null, new ScmFileSet( new File( "" ), path ), null );
+ SvnInfoCommand infoCmd = (SvnInfoCommand) getInfoCommand();
+ infoCmd.setLogger( this.getLogger() );
+ InfoScmResult result =
+ infoCmd.executeInfoCommand( null, new ScmFileSet( new File( "" ), path ), null, false, null );
if ( result.getInfoItems().size() != 1 )
{
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/c96ca247/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/SvnExeScmProviderTest.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/SvnExeScmProviderTest.java b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/SvnExeScmProviderTest.java
new file mode 100644
index 0000000..9d7c8c0
--- /dev/null
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/SvnExeScmProviderTest.java
@@ -0,0 +1,78 @@
+package org.apache.maven.scm.provider.svn.svnexe;
+
+import static org.junit.Assert.assertFalse;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.io.File;
+
+import org.apache.maven.scm.ScmException;
+import org.apache.maven.scm.log.ScmLogger;
+import org.codehaus.plexus.util.Os;
+import org.junit.Assume;
+import org.junit.Before;
+import org.junit.Test;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+public class SvnExeScmProviderTest
+{
+ private SvnExeScmProvider scmProvider;
+
+ @Before
+ public void onSetup()
+ {
+ scmProvider = new SvnExeScmProvider();
+ }
+
+ // SCM-435
+ @Test
+ public void testGetRepositoryURL_Windows()
+ throws Exception
+ {
+ Assume.assumeTrue( Os.isFamily( Os.FAMILY_WINDOWS ) );
+
+ // prepare
+ ScmLogger logger = mock( ScmLogger.class );
+ when( logger.isInfoEnabled() ).thenReturn( Boolean.TRUE );
+ scmProvider.addListener( logger );
+ File workingDirectory = new File( "." );
+
+ // test
+ // Since SCM-project has moved from svn to GIT, we can't verify the URL of this project
+ String url;
+ try
+ {
+ url = scmProvider.getRepositoryURL( workingDirectory );
+
+ // verify
+ assertFalse( url.startsWith( "file://" ) );
+ }
+ catch ( ScmException e )
+ {
+ }
+
+ // verify
+ verify( logger ).info( "Executing: cmd.exe /X /C \"svn --non-interactive info .\"" );
+ verify( logger ).info( "Working directory: " + workingDirectory.getCanonicalPath() );
+ }
+}
+