1   package com.atlassian.maven.plugins.ampsdispatcher;
2   
3   import junit.framework.TestCase;
4   import org.apache.maven.execution.MavenSession;
5   import org.apache.maven.model.Build;
6   import org.apache.maven.model.Plugin;
7   import org.apache.maven.plugin.PluginManager;
8   import org.apache.maven.project.MavenProject;
9   
10  import com.atlassian.maven.plugins.amps.util.MavenPropertiesUtils;
11  
12  import static org.mockito.Mockito.mock;
13  import static org.mockito.Mockito.when;
14  
15  import java.util.ArrayList;
16  import java.util.Arrays;
17  import java.util.List;
18  
19  public class TestAbstractAmpsDispatcherMojo extends TestCase
20  {
21  
22      MavenProject project;
23      MavenSession session;
24      PluginManager pluginManager;
25      AbstractAmpsDispatcherMojo mojo;
26  
27      @Override
28      protected void setUp() throws Exception
29      {
30          super.setUp();
31          project = new MavenProject();
32          session = mock(MavenSession.class);
33          pluginManager = mock(PluginManager.class);
34          mojo = new AbstractAmpsDispatcherMojo(){};
35          mojo.pluginManager = pluginManager;
36          mojo.project = project;
37          mojo.session = session;
38      }
39  
40      public void testDetectAmpsProduct()
41      {
42          assertPlugin(true, "maven-refapp-plugin");
43          assertPlugin(true, "maven-confluence-plugin");
44          assertPlugin(true, "maven-jira-plugin");
45          assertPlugin(true, "maven-stash-plugin");
46          assertPlugin(true, "maven-confluence-plugin");
47          assertPlugin(true, "maven-bamboo-plugin");
48          assertPlugin(true, "maven-crowd-plugin");
49          assertPlugin(true, "maven-fecru-plugin");
50          assertPlugin(false, "maven-refappsd-plugin");
51          assertPlugin(false, "mas");
52      }
53  
54      public void testDetermineGoal()
55      {
56          when(session.getGoals()).thenReturn(Arrays.asList("foo"));
57          assertEquals("foo", mojo.determineGoal());
58  
59          when(session.getGoals()).thenReturn(Arrays.asList("foo:bar"));
60          assertEquals("bar", mojo.determineGoal());
61  
62          when(session.getGoals()).thenReturn(Arrays.asList("foo:bar:baz"));
63          assertEquals("baz", mojo.determineGoal());
64  
65          when(session.getGoals()).thenReturn(Arrays.asList("foo", "bar"));
66          assertEquals("foo", mojo.determineGoal());
67      }
68  
69      private void assertPlugin(boolean expected, String artifactId)
70      {
71          List<Plugin> buildPlugins = new ArrayList<Plugin>();
72          Plugin plugin = new Plugin();
73          plugin.setGroupId("com.atlassian.maven.plugins");
74          plugin.setArtifactId(artifactId);
75          buildPlugins.add(plugin);
76          Build build = new Build();
77          build.setPlugins(buildPlugins);
78          project.setBuild(build);
79          if (expected)
80          {
81              assertEquals(artifactId, MavenPropertiesUtils.detectAmpsProduct(project));
82          }
83          else
84          {
85              assertNotSame(artifactId, MavenPropertiesUtils.detectAmpsProduct(project));
86          }
87      }
88  
89  }