1 package com.atlassian.plugin.loaders;
2
3 import java.util.HashMap;
4 import java.util.Map;
5
6 import com.google.common.collect.ImmutableMap;
7
8 import org.dom4j.DocumentHelper;
9 import org.dom4j.Element;
10 import org.junit.Test;
11
12 import static org.junit.Assert.assertEquals;
13
14 public class LoaderUtilsTest
15 {
16 @Test
17 public void noParamsMeansAnEmptyMap()
18 {
19 Element element = DocumentHelper.createElement("parent");
20 assertEquals(ImmutableMap.of(), LoaderUtils.getParams(element));
21 }
22
23 @Test
24 public void getParamsWorksWhenNameAndValueAreSpecified()
25 {
26 Element element = DocumentHelper.createElement("parent");
27
28 Element param = DocumentHelper.createElement("param");
29 param.addAttribute("name", "param-name");
30 param.addAttribute("value", "param-value");
31 element.add(param);
32
33 assertEquals(ImmutableMap.of("param-name", "param-value"),
34 LoaderUtils.getParams(element));
35 }
36
37
38
39
40
41 @Test
42 public void getParamsReturnsNullMapWhenNameAndValueAreOmitted()
43 {
44 Element element = DocumentHelper.createElement("parent");
45
46 Element param = DocumentHelper.createElement("param");
47 element.add(param);
48
49 Map<String, String> expected = new HashMap<String, String>();
50 expected.put(null, null);
51
52 assertEquals(expected,
53 LoaderUtils.getParams(element));
54 }
55
56 @Test
57 public void valueIsTakenFromElementContentIfNoValueSet()
58 {
59 Element element = DocumentHelper.createElement("parent");
60
61 Element param = DocumentHelper.createElement("param");
62 param.addAttribute("name", "param-name");
63 param.addText("param-content");
64 element.add(param);
65
66 assertEquals(ImmutableMap.of("param-name", "param-content"),
67 LoaderUtils.getParams(element));
68 }
69 }