1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugin.compiler;
20
21 import java.lang.reflect.Field;
22
23 import org.apache.maven.execution.MavenSession;
24 import org.apache.maven.plugin.MojoExecution;
25 import org.apache.maven.plugin.descriptor.MojoDescriptor;
26 import org.apache.maven.plugin.descriptor.PluginDescriptor;
27 import org.apache.maven.project.MavenProject;
28 import org.codehaus.plexus.util.ReflectionUtils;
29
30 import static org.mockito.Mockito.mock;
31 import static org.mockito.Mockito.when;
32
33 public class MojoTestUtils {
34
35 public static <T> T getVariableValueFromObject(Object object, String variable) throws IllegalAccessException {
36 Field field = ReflectionUtils.getFieldByNameIncludingSuperclasses(variable, object.getClass());
37 field.setAccessible(true);
38 return (T) field.get(object);
39 }
40
41 public static <T> void setVariableValueToObject(Object object, String variable, T value)
42 throws IllegalAccessException {
43 Field field = ReflectionUtils.getFieldByNameIncludingSuperclasses(variable, object.getClass());
44 field.setAccessible(true);
45 field.set(object, value);
46 }
47
48 public static MavenProject getMockMavenProject() {
49 MavenProject mp = new MavenProject();
50 mp.getBuild().setDirectory("target");
51 mp.getBuild().setOutputDirectory("target/classes");
52 mp.getBuild().setSourceDirectory("src/main/java");
53 mp.getBuild().setTestOutputDirectory("target/test-classes");
54 return mp;
55 }
56
57 public static MavenSession getMockMavenSession() {
58 MavenSession session = mock(MavenSession.class);
59
60
61 when(session.getCurrentProject()).thenReturn(getMockMavenProject());
62 return session;
63 }
64
65 public static MojoExecution getMockMojoExecution() {
66 MojoDescriptor md = new MojoDescriptor();
67 MojoExecution me = new MojoExecution(md);
68
69 PluginDescriptor pd = new PluginDescriptor();
70 pd.setArtifactId("maven-compiler-plugin");
71 md.setPluginDescriptor(pd);
72
73 return me;
74 }
75 }