1 package org.apache.maven.scm.provider.perforce.command.checkout;
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.ScmRevision;
23 import org.apache.maven.scm.ScmTestCase;
24 import org.apache.maven.scm.provider.perforce.PerforceScmProvider;
25 import org.apache.maven.scm.provider.perforce.repository.PerforceScmProviderRepository;
26 import org.apache.maven.scm.repository.ScmRepository;
27 import org.codehaus.plexus.util.cli.Commandline;
28
29 import java.io.File;
30
31
32
33
34
35
36 public class PerforceCheckOutCommandTest
37 extends ScmTestCase
38 {
39 private static final File workingDirectory = getTestFile( "target/perforce-checkout-command-test" );
40
41 private static final String cmdPrefix = "p4 -d " + workingDirectory.getAbsolutePath();
42
43 public void testGetCommandLine()
44 throws Exception
45 {
46 testCommandLine( "scm:perforce://depot/projects/pathname",
47 cmdPrefix + " -ctest-test-maven sync -f @somelabel" );
48 }
49
50 public void testGetCommandLineWithHost()
51 throws Exception
52 {
53 testCommandLine( "scm:perforce:a:username@//depot/projects/pathname",
54 cmdPrefix + " -p a -u username -ctest-test-maven sync -f @somelabel" );
55 }
56
57 public void testGetCommandLineWithHostAndPort()
58 throws Exception
59 {
60 testCommandLine( "scm:perforce:myhost:1234:username@//depot/projects/pathname",
61 cmdPrefix + " -p myhost:1234 -u username -ctest-test-maven sync -f @somelabel" );
62 }
63
64 public void testClean()
65 {
66 String generated = PerforceScmProvider.clean( "p4 -u mr -P mypass -cclient sync ..." );
67 assertEquals( "p4 -u mr -P ****** -cclient sync ...", generated );
68 assertEquals( "p4 sync ...", PerforceScmProvider.clean( "p4 sync ..." ) );
69 }
70
71
72
73
74
75 private void testCommandLine( String scmUrl, String commandLine )
76 throws Exception
77 {
78 workingDirectory.mkdirs();
79
80 ScmRepository repository = getScmManager().makeScmRepository( scmUrl );
81 PerforceScmProviderRepository svnRepository = (PerforceScmProviderRepository) repository
82 .getProviderRepository();
83 Commandline cl = PerforceCheckOutCommand.createCommandLine( svnRepository, workingDirectory,
84 new ScmRevision( "somelabel" ), "test-test-maven" );
85
86 assertCommandLine( commandLine, null, cl );
87 }
88 }