1 package org.apache.maven.plugin.antrun;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.File;
23 import java.io.OutputStream;
24 import java.io.PrintStream;
25 import java.util.Arrays;
26 import java.util.Properties;
27
28 import org.apache.maven.cli.ConsoleDownloadMonitor;
29 import org.apache.maven.embedder.MavenEmbedder;
30 import org.apache.maven.embedder.MavenEmbedderConsoleLogger;
31 import org.apache.maven.embedder.PlexusLoggerAdapter;
32 import org.apache.maven.monitor.event.DefaultEventMonitor;
33 import org.apache.maven.monitor.event.EventMonitor;
34 import org.apache.maven.project.MavenProject;
35 import org.codehaus.plexus.PlexusTestCase;
36 import org.codehaus.plexus.util.StringOutputStream;
37
38
39
40
41
42
43
44 public class AntRunMojoTest
45 extends PlexusTestCase
46 {
47
48
49
50 protected void setUp()
51 throws Exception
52 {
53
54 super.setUp();
55 }
56
57
58
59
60 protected void tearDown()
61 throws Exception
62 {
63
64 }
65
66
67
68
69
70
71 public void testDefaultProject()
72 throws Exception
73 {
74 String result = invokeMaven( "antrun-default-test", new Properties() );
75 assertTrue( result.indexOf( "[echo] Hello World!" ) != -1 );
76 }
77
78
79
80
81
82
83 public void testTasksAttributesProject()
84 throws Exception
85 {
86 Properties properties = new Properties();
87
88 String result = invokeMaven( "tasksattributes-test", properties );
89 assertTrue( result.indexOf( "[echo] To skip me" ) != -1 );
90
91 properties.put( "maven.test.skip", "true" );
92 result = invokeMaven( "tasksattributes-test", properties );
93 assertTrue( result.indexOf( "[echo] To skip me" ) == -1 );
94 }
95
96
97
98
99
100
101
102
103
104
105
106
107
108 private String invokeMaven( String testProject, Properties properties )
109 throws Exception
110 {
111 MavenEmbedder maven = new MavenEmbedder();
112 maven.setClassLoader( Thread.currentThread().getContextClassLoader() );
113 maven.setLogger( new MavenEmbedderConsoleLogger() );
114 maven.setLocalRepositoryDirectory( getTestFile( "target/local-repo" ) );
115 maven.setOffline( true );
116 maven.start();
117
118 EventMonitor eventMonitor = new DefaultEventMonitor( new PlexusLoggerAdapter( new MavenEmbedderConsoleLogger() ) );
119
120 File testPom = new File( getBasedir(), "src/test/resources/unit/" + testProject + "/" + testProject
121 + "-plugin-config.xml" );
122 MavenProject project = maven.readProjectWithDependencies( testPom );
123
124 PrintStream oldOut = System.out;
125 OutputStream outOS = new StringOutputStream();
126 PrintStream out = new PrintStream( outOS );
127 System.setOut( out );
128
129 try
130 {
131 maven.execute( project,
132 Arrays.asList( new String[] { "org.apache.maven.plugins:maven-antrun-plugin:run" } ),
133 eventMonitor, new ConsoleDownloadMonitor(), properties, new File( PlexusTestCase
134 .getBasedir(), "/target/test/unit/" + testProject + "/" ) );
135
136 return outOS.toString();
137 }
138 finally
139 {
140 System.setOut( oldOut );
141 }
142 }
143 }