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 BranchMojoTest
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 testBranch()
78 throws Exception
79 {
80 if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVN_COMMAND_LINE ) )
81 {
82 System.err.println( "'" + SvnScmTestUtils.SVN_COMMAND_LINE
83 + "' is not a system command. Ignored " + getName() + "." );
84 return;
85 }
86
87 BranchMojo mojo =
88 (BranchMojo) lookupMojo( "branch", getTestFile( "src/test/resources/mojos/branch/branch.xml" ) );
89 mojo.setWorkingDirectory( checkoutDir );
90
91 String connectionUrl = mojo.getConnectionUrl();
92 connectionUrl = StringUtils.replace( connectionUrl, "${basedir}", getBasedir() );
93 connectionUrl = StringUtils.replace( connectionUrl, "\\", "/" );
94 mojo.setConnectionUrl( connectionUrl );
95
96 mojo.execute();
97
98 CheckoutMojo checkoutMojo =
99 (CheckoutMojo) lookupMojo( "checkout", getTestFile( "src/test/resources/mojos/branch/checkout.xml" ) );
100 checkoutMojo.setWorkingDirectory( new File( getBasedir() ) );
101
102 connectionUrl = checkoutMojo.getConnectionUrl();
103 connectionUrl = StringUtils.replace( connectionUrl, "${basedir}", getBasedir() );
104 connectionUrl = StringUtils.replace( connectionUrl, "\\", "/" );
105 checkoutMojo.setConnectionUrl( connectionUrl );
106
107 File branchCheckoutDir = getTestFile( "target/branches/mybranch" );
108 if ( branchCheckoutDir.exists() )
109 {
110 FileUtils.deleteDirectory( branchCheckoutDir );
111 }
112 checkoutMojo.setCheckoutDirectory( branchCheckoutDir );
113
114 assertFalse( new File( branchCheckoutDir, "pom.xml" ).exists() );
115 checkoutMojo.execute();
116 assertTrue( new File( branchCheckoutDir, "pom.xml" ).exists() );
117 }
118 }