1 package com.atlassian.maven.plugins.amps;
2
3 import junit.framework.TestCase;
4 import org.apache.maven.model.Build;
5 import org.apache.maven.model.Plugin;
6 import org.apache.maven.plugin.MojoExecutionException;
7 import org.apache.maven.plugin.MojoFailureException;
8 import org.apache.maven.project.MavenProject;
9
10 import java.lang.reflect.Field;
11 import java.util.Collections;
12 import java.util.HashMap;
13 import java.util.Map;
14
15 import static java.util.Arrays.asList;
16 import static java.util.Collections.emptyList;
17
18 public class TestAbstractProductHandlerMojo extends TestCase
19 {
20 public void testMakeProductsInheritDefaultConfiguration() throws Exception
21 {
22 SomeMojo mojo = new SomeMojo("foo");
23
24 Product fooProd = new Product();
25 fooProd.setInstanceId("foo");
26 fooProd.setVersion("1.0");
27
28 Product barProd = new Product();
29 barProd.setInstanceId("bar");
30 barProd.setVersion("2.0");
31
32 Map<String,Product> prodMap = new HashMap<String, Product>();
33 mojo.makeProductsInheritDefaultConfiguration(asList(fooProd, barProd), prodMap);
34 assertEquals(2, prodMap.size());
35 assertEquals("1.0", prodMap.get("foo").getVersion());
36 assertEquals("/foo", prodMap.get("foo").getContextPath());
37 assertEquals("2.0", prodMap.get("bar").getVersion());
38 assertEquals("/foo", prodMap.get("bar").getContextPath());
39 }
40
41 public void testMakeProductsInheritDefaultConfigurationDifferentInstanceIds() throws Exception
42 {
43 SomeMojo mojo = new SomeMojo("baz");
44
45 Product fooProd = new Product();
46 fooProd.setInstanceId("foo");
47 fooProd.setVersion("1.0");
48
49 Product barProd = new Product();
50 barProd.setInstanceId("bar");
51 barProd.setVersion("2.0");
52
53 Map<String,Product> prodMap = new HashMap<String, Product>();
54 mojo.makeProductsInheritDefaultConfiguration(asList(fooProd, barProd), prodMap);
55 assertEquals(3, prodMap.size());
56 assertEquals("1.0", prodMap.get("foo").getVersion());
57 assertEquals("/foo", prodMap.get("foo").getContextPath());
58 assertEquals("2.0", prodMap.get("bar").getVersion());
59 assertEquals("/foo", prodMap.get("bar").getContextPath());
60 assertEquals(null, prodMap.get("baz").getVersion());
61 assertEquals("/foo", prodMap.get("baz").getContextPath());
62 }
63
64 public void testMakeProductsInheritDefaultConfigurationNoProducts() throws Exception
65 {
66 SomeMojo mojo = new SomeMojo("foo");
67
68 Map<String,Product> prodMap = new HashMap<String, Product>();
69 mojo.makeProductsInheritDefaultConfiguration(Collections.<Product>emptyList(), prodMap);
70 assertEquals(1, prodMap.size());
71 assertEquals("/foo", prodMap.get("foo").getContextPath());
72 }
73
74 public static class SomeMojo extends AbstractProductHandlerMojo
75 {
76 private final String defaultProductId;
77
78 public SomeMojo(String defaultProductId)
79 {
80 this.defaultProductId = defaultProductId;
81 contextPath = "/foo";
82 }
83
84 @Override
85 protected String getDefaultProductId() throws MojoExecutionException
86 {
87 return defaultProductId;
88 }
89
90 @Override
91 protected void doExecute() throws MojoExecutionException, MojoFailureException
92 {
93
94 }
95 }
96 }