1 package org.apache.maven.scm.provider.git.gitexe.command.tag;
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.ScmTestCase;
23 import org.apache.maven.scm.provider.git.repository.GitScmProviderRepository;
24 import org.apache.maven.scm.repository.ScmRepository;
25 import org.codehaus.plexus.util.cli.Commandline;
26
27 import java.io.File;
28
29
30
31
32 public class GitTagCommandTest
33 extends ScmTestCase
34 {
35 private File messageFile;
36
37 private String messageFileString;
38
39 public void setUp()
40 throws Exception
41 {
42 super.setUp();
43
44 messageFile = new File( "commit-message" );
45
46 String path = messageFile.getAbsolutePath();
47 if ( path.indexOf( ' ' ) >= 0 )
48 {
49 path = "\"" + path + "\"";
50 }
51 messageFileString = "-F " + path;
52 }
53
54
55 public void testCommandLineTag()
56 throws Exception
57 {
58 testCommandLine( "scm:git:http://foo.com/git/trunk", "my-tag-1", "git tag " + messageFileString + " my-tag-1" );
59 }
60
61 public void testCommandLineWithUsernameAndTag()
62 throws Exception
63 {
64 testCommandLine( "scm:git:http://anonymous@foo.com/git/trunk", "my-tag-1",
65 "git tag " + messageFileString + " my-tag-1" );
66 }
67
68
69
70
71
72 private void testCommandLine( String scmUrl, String tag, String commandLine )
73 throws Exception
74 {
75 File workingDirectory = getTestFile( "target/git-checkin-command-test" );
76
77 ScmRepository repository = getScmManager().makeScmRepository( scmUrl );
78
79 GitScmProviderRepository gitRepository = (GitScmProviderRepository) repository.getProviderRepository();
80
81 Commandline cl = GitTagCommand.createCommandLine( gitRepository, workingDirectory, tag, messageFile );
82
83 assertCommandLine( commandLine, workingDirectory, cl );
84 }
85 }