1 package org.apache.maven.scm.plugin;
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.plugin.testing.AbstractMojoTestCase;
23 import org.apache.maven.scm.ScmTestCase;
24 import org.apache.maven.scm.provider.svn.SvnScmTestUtils;
25 import org.codehaus.plexus.util.FileUtils;
26 import org.codehaus.plexus.util.StringUtils;
27
28 import java.io.File;
29
30
31
32
33
34 public class TagMojoTest
35 extends AbstractMojoTestCase
36 {
37 File checkoutDir;
38
39 File repository;
40
41 protected void setUp()
42 throws Exception
43 {
44 super.setUp();
45
46 checkoutDir = getTestFile( "target/checkout" );
47
48 FileUtils.forceDelete( checkoutDir );
49
50 repository = getTestFile( "target/repository" );
51
52 FileUtils.forceDelete( repository );
53
54 if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVNADMIN_COMMAND_LINE ) )
55 {
56 System.err.println( "'" + SvnScmTestUtils.SVNADMIN_COMMAND_LINE
57 + "' is not a system command. Ignored setUp." );
58 return;
59 }
60
61 SvnScmTestUtils.initializeRepository( repository );
62
63 CheckoutMojo checkoutMojo = (CheckoutMojo) lookupMojo( "checkout", getTestFile(
64 "src/test/resources/mojos/checkout/checkoutWithConnectionUrl.xml" ) );
65 checkoutMojo.setWorkingDirectory( new File( getBasedir() ) );
66
67 String connectionUrl = checkoutMojo.getConnectionUrl();
68 connectionUrl = StringUtils.replace( connectionUrl, "${basedir}", getBasedir() );
69 connectionUrl = StringUtils.replace( connectionUrl, "\\", "/" );
70 checkoutMojo.setConnectionUrl( connectionUrl );
71
72 checkoutMojo.setCheckoutDirectory( checkoutDir );
73
74 checkoutMojo.execute();
75 }
76
77 public void testTag()
78 throws Exception
79 {
80 if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVNADMIN_COMMAND_LINE ) )
81 {
82 System.err.println( "'" + SvnScmTestUtils.SVNADMIN_COMMAND_LINE
83 + "' is not a system command. Ignored " + getName() + "." );
84 return;
85 }
86
87 TagMojo mojo = (TagMojo) lookupMojo( "tag", getTestFile( "src/test/resources/mojos/tag/tag.xml" ) );
88 mojo.setWorkingDirectory( checkoutDir );
89
90 String connectionUrl = mojo.getConnectionUrl();
91 connectionUrl = StringUtils.replace( connectionUrl, "${basedir}", getBasedir() );
92 connectionUrl = StringUtils.replace( connectionUrl, "\\", "/" );
93 mojo.setConnectionUrl( connectionUrl );
94
95 mojo.execute();
96
97 if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVN_COMMAND_LINE ) )
98 {
99 System.err.println( "'" + SvnScmTestUtils.SVN_COMMAND_LINE
100 + "' is not a system command. Ignored " + getName() + "." );
101 return;
102 }
103
104 CheckoutMojo checkoutMojo =
105 (CheckoutMojo) lookupMojo( "checkout", getTestFile( "src/test/resources/mojos/tag/checkout.xml" ) );
106 checkoutMojo.setWorkingDirectory( new File( getBasedir() ) );
107
108 connectionUrl = checkoutMojo.getConnectionUrl();
109 connectionUrl = StringUtils.replace( connectionUrl, "${basedir}", getBasedir() );
110 connectionUrl = StringUtils.replace( connectionUrl, "\\", "/" );
111 checkoutMojo.setConnectionUrl( connectionUrl );
112
113 File tagCheckoutDir = getTestFile( "target/tags/mytag" );
114 if ( tagCheckoutDir.exists() )
115 {
116 FileUtils.deleteDirectory( tagCheckoutDir );
117 }
118 checkoutMojo.setCheckoutDirectory( tagCheckoutDir );
119
120 assertFalse( new File( tagCheckoutDir, "pom.xml" ).exists() );
121 checkoutMojo.execute();
122 assertTrue( new File( tagCheckoutDir, "pom.xml" ).exists() );
123 }
124
125 public void testTagWithTimestamp()
126 throws Exception
127 {
128 if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVN_COMMAND_LINE ) )
129 {
130 System.err.println( "'" + SvnScmTestUtils.SVN_COMMAND_LINE
131 + "' is not a system command. Ignored " + getName() + "." );
132 return;
133 }
134
135 TagMojo mojo =
136 (TagMojo) lookupMojo( "tag", getTestFile( "src/test/resources/mojos/tag/tagWithTimestamp.xml" ) );
137 mojo.setWorkingDirectory( checkoutDir );
138
139 String connectionUrl = mojo.getConnectionUrl();
140 connectionUrl = StringUtils.replace( connectionUrl, "${basedir}", getBasedir() );
141 connectionUrl = StringUtils.replace( connectionUrl, "\\", "/" );
142 mojo.setConnectionUrl( connectionUrl );
143
144 mojo.execute();
145 }
146 }