1 package org.apache.maven.plugins.help;
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.descriptor.MojoDescriptor;
23 import org.apache.maven.plugin.descriptor.Parameter;
24
25 import junit.framework.Assert;
26 import junit.framework.TestCase;
27 import junitx.util.PrivateAccessor;
28
29
30
31
32
33 public class DescribeMojoTest
34 extends TestCase
35 {
36
37
38
39
40
41 public void testGetExpressionsRoot()
42 throws Exception
43 {
44 try
45 {
46 PrivateAccessor.invoke( DescribeMojo.class, "toLines", new Class[] { String.class, Integer.TYPE,
47 Integer.TYPE, Integer.TYPE }, new Object[] { "", new Integer( 2 ), new Integer( 2 ),
48 new Integer( 80 ) } );
49 assertTrue( true );
50 }
51 catch ( Throwable e )
52 {
53 Assert.fail( "The API changes" );
54 }
55 }
56
57 public void testValidExpression()
58 throws Exception
59 {
60 StringBuilder sb = new StringBuilder();
61 MojoDescriptor md = new MojoDescriptor();
62 Parameter parameter = new Parameter();
63 parameter.setName( "name" );
64 parameter.setExpression( "${valid.expression}" );
65 md.addParameter( parameter );
66
67 try
68 {
69 PrivateAccessor.invoke( new DescribeMojo(), "describeMojoParameters", new Class[] { MojoDescriptor.class,
70 StringBuilder.class }, new Object[] { md, sb } );
71
72 assertEquals( " Available parameters:\n" +
73 "\n" +
74 " name\n" +
75 " User property: valid.expression\n" +
76 " (no description available)\n", sb.toString() );
77 }
78 catch ( Throwable e )
79 {
80 fail( e.getMessage() );
81 }
82 }
83
84 public void testInvalidExpression()
85 throws Exception
86 {
87 StringBuilder sb = new StringBuilder();
88 MojoDescriptor md = new MojoDescriptor();
89 Parameter parameter = new Parameter();
90 parameter.setName( "name" );
91 parameter.setExpression( "${project.build.directory}/generated-sources/foobar" );
92 md.addParameter( parameter );
93
94 try
95 {
96 PrivateAccessor.invoke( new DescribeMojo(), "describeMojoParameters", new Class[] { MojoDescriptor.class,
97 StringBuilder.class }, new Object[] { md, sb } );
98
99 assertEquals( " Available parameters:\n" +
100 "\n" +
101 " name\n" +
102 " Expression: ${project.build.directory}/generated-sources/foobar\n" +
103 " (no description available)\n", sb.toString() );
104 }
105 catch ( Throwable e )
106 {
107 fail( e.getMessage() );
108 }
109
110 }
111
112 }