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.junit.Assume;
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 Assume.assumeTrue( ScmTestCase.isSystemCmd( SvnScmTestUtils.SVNADMIN_COMMAND_LINE ) );
55
56 SvnScmTestUtils.initializeRepository( repository );
57
58 CheckoutMojo checkoutMojo = (CheckoutMojo) lookupMojo( "checkout", getTestFile(
59 "src/test/resources/mojos/checkout/checkoutWithConnectionUrl.xml" ) );
60 checkoutMojo.setWorkingDirectory( new File( getBasedir() ) );
61
62 setupConnectionUrl( checkoutMojo );
63
64 checkoutMojo.setCheckoutDirectory( checkoutDir );
65
66 checkoutMojo.execute();
67 }
68
69 private static void setupConnectionUrl( AbstractScmMojo mojo )
70 {
71 String connectionUrl = mojo.getConnectionUrl();
72 connectionUrl = connectionUrl.replace( "${basedir}", getBasedir() );
73 connectionUrl = connectionUrl.replace( '\\', '/' );
74 mojo.setConnectionUrl( connectionUrl );
75 }
76
77 public void testTag()
78 throws Exception
79 {
80
81 TagMojo mojo = (TagMojo) lookupMojo( "tag", getTestFile( "src/test/resources/mojos/tag/tag.xml" ) );
82 mojo.setWorkingDirectory( checkoutDir );
83
84 setupConnectionUrl( mojo );
85
86 mojo.execute();
87
88 CheckoutMojo checkoutMojo =
89 (CheckoutMojo) lookupMojo( "checkout", getTestFile( "src/test/resources/mojos/tag/checkout.xml" ) );
90 checkoutMojo.setWorkingDirectory( new File( getBasedir() ) );
91
92 setupConnectionUrl( checkoutMojo );
93
94 File tagCheckoutDir = getTestFile( "target/tags/mytag" );
95 if ( tagCheckoutDir.exists() )
96 {
97 FileUtils.deleteDirectory( tagCheckoutDir );
98 }
99 checkoutMojo.setCheckoutDirectory( tagCheckoutDir );
100
101 assertFalse( new File( tagCheckoutDir, "pom.xml" ).exists() );
102 checkoutMojo.execute();
103 assertTrue( new File( tagCheckoutDir, "pom.xml" ).exists() );
104 }
105
106 public void testTagWithTimestamp()
107 throws Exception
108 {
109
110 TagMojo mojo =
111 (TagMojo) lookupMojo( "tag", getTestFile( "src/test/resources/mojos/tag/tagWithTimestamp.xml" ) );
112 mojo.setWorkingDirectory( checkoutDir );
113
114 setupConnectionUrl( mojo );
115
116 mojo.execute();
117 }
118 }