1 package org.apache.maven.scm.provider.perforce.command.edit;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.scm.ScmFileSet;
23 import org.apache.maven.scm.ScmTestCase;
24 import org.apache.maven.scm.provider.perforce.repository.PerforceScmProviderRepository;
25 import org.apache.maven.scm.repository.ScmRepository;
26 import org.codehaus.plexus.util.cli.Commandline;
27
28 import java.io.File;
29 import java.util.Arrays;
30
31
32
33
34
35
36 public class PerforceEditCommandTest
37 extends ScmTestCase
38 {
39 private static final String cmdPrefix = "p4 -d ";
40
41 public void testGetCommandLine()
42 throws Exception
43 {
44 File workingDir = new File( "." );
45 ScmFileSet files = new ScmFileSet( new File( "." ), Arrays.asList(
46 new File[]{ new File( "foo.xml" ), new File( "bar.xml" ) } ) );
47 String commandLineString = cmdPrefix + workingDir.getAbsolutePath() + " edit";
48 for ( File file : files.getFileList() )
49 {
50 commandLineString += " " + file.getPath();
51 }
52 testCommandLine( "scm:perforce://depot/projects/pathname", commandLineString, workingDir, files );
53 }
54
55 public void testRelativeCommandLine()
56 throws Exception
57 {
58 File workingDir = new File( "baz/qux" );
59 ScmFileSet files = new ScmFileSet( new File( "." ), Arrays.asList(
60 new File[]{ new File( "foo.xml" ), new File( "bar.xml" ) } ) );
61 String commandLineString = cmdPrefix + workingDir.getAbsolutePath() + " edit";
62 for ( File file : files.getFileList() )
63 {
64 commandLineString += " " + file.getPath();
65 }
66 testCommandLine( "scm:perforce://depot/projects/pathname", commandLineString, workingDir, files );
67 }
68
69 public void testAbsoluteCommandLine()
70 throws Exception
71 {
72 File workingDir = new File( "." ).getAbsoluteFile();
73 ScmFileSet files = new ScmFileSet( new File( "." ), Arrays.asList(
74 new File[]{ new File( "foo.xml" ), new File( "bar.xml" ) } ) );
75 String commandLineString = cmdPrefix + workingDir.getAbsolutePath() + " edit";
76 for ( File file : files.getFileList() )
77 {
78 commandLineString += " " + file.getPath();
79 }
80 testCommandLine( "scm:perforce://depot/projects/pathname", commandLineString, workingDir, files );
81 }
82
83
84
85
86
87 private void testCommandLine( String scmUrl, String commandLine, File workingDir, ScmFileSet files )
88 throws Exception
89 {
90 ScmRepository repository = getScmManager().makeScmRepository( scmUrl );
91 PerforceScmProviderRepository svnRepository =
92 (PerforceScmProviderRepository) repository.getProviderRepository();
93 Commandline cl = PerforceEditCommand.createCommandLine( svnRepository, workingDir, files );
94
95 assertCommandLine( commandLine, null, cl );
96 }
97
98 }