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