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