1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.shared.release.transform.jdom2;
20
21 import java.io.StringReader;
22
23 import org.apache.maven.model.Model;
24 import org.apache.maven.model.Scm;
25 import org.jdom2.Document;
26 import org.jdom2.Element;
27 import org.jdom2.input.SAXBuilder;
28 import org.junit.Test;
29
30 import static org.junit.Assert.assertEquals;
31 import static org.junit.Assert.assertNotNull;
32 import static org.junit.Assert.assertNull;
33
34 public class JDomModelTest {
35 private SAXBuilder builder = new SAXBuilder();
36
37 @Test
38 public void testGetScm() throws Exception {
39 String content = "<project></project>";
40 Document document = builder.build(new StringReader(content));
41 assertNull(new JDomModel(document).getScm());
42 }
43
44 @Test
45 public void testSetScm() throws Exception {
46 String content = "<project></project>";
47 Document document = builder.build(new StringReader(content));
48 Model model = new JDomModel(document);
49 assertNull(model.getScm());
50
51 model.setScm(new Scm());
52 assertNotNull(model.getScm());
53
54 model.setScm(null);
55 assertNull(model.getScm());
56 }
57
58 @Test
59 public void testSetVersion() throws Exception {
60 String content = "<project></project>";
61 Element projectElm = builder.build(new StringReader(content)).getRootElement();
62 Model model = new JDomModel(projectElm);
63 assertNull(model.getVersion());
64
65 model.setVersion("VERSION");
66 assertEquals("VERSION", getVersion(projectElm));
67
68 model.setVersion(null);
69 assertNull(model.getVersion());
70
71
72 content = "<project><parent><version>${revision}</version></parent></project>";
73 projectElm = builder.build(new StringReader(content)).getRootElement();
74 model = new JDomModel(projectElm);
75 assertNull(model.getVersion());
76 model.setVersion("PARENT_VERSION");
77 assertNull(getVersion(projectElm));
78
79
80 content = "<project><parent><version>PARENT_VERSION</version></parent></project>";
81 projectElm = builder.build(new StringReader(content)).getRootElement();
82 model = new JDomModel(projectElm);
83 assertNull(model.getVersion());
84
85 model.setVersion("PARENT_VERSION");
86 assertNull(getVersion(projectElm));
87
88 model.setVersion("VERSION");
89 assertEquals("VERSION", getVersion(projectElm));
90
91 model.setVersion(null);
92 assertNull(model.getVersion());
93 }
94
95 private String getVersion(Element projectElm) {
96 return projectElm.getChildText("version", projectElm.getNamespace());
97 }
98 }