1 package org.codehaus.modello.generator.xml.xpp3;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 import javax.inject.Inject;
26
27 import java.util.List;
28 import java.util.Map;
29
30 import org.codehaus.modello.AbstractModelloJavaGeneratorTest;
31 import org.codehaus.modello.core.ModelloCore;
32 import org.codehaus.modello.model.Model;
33 import org.codehaus.modello.model.ModelClass;
34 import org.codehaus.modello.model.ModelField;
35 import org.codehaus.modello.model.Version;
36 import org.codehaus.modello.plugins.xml.metadata.XmlFieldMetadata;
37 import org.codehaus.plexus.testing.PlexusTest;
38 import org.junit.jupiter.api.Test;
39
40 import static org.junit.jupiter.api.Assertions.*;
41
42
43
44
45
46 @PlexusTest
47 public class Xpp3GeneratorTest extends AbstractModelloJavaGeneratorTest {
48 public Xpp3GeneratorTest() {
49 super("xpp3");
50 }
51
52 @Inject
53 private ModelloCore modello;
54
55 @Test
56 public void testXpp3Generator() throws Throwable {
57
58 Model model = modello.loadModel(getXmlResourceReader("/maven.mdo"));
59
60
61 List<ModelClass> classesList = model.getClasses(new Version("4.0.0"));
62
63 assertEquals(28, classesList.size());
64
65 ModelClass clazz = (ModelClass) classesList.get(0);
66
67 assertEquals("Model", clazz.getName());
68
69 ModelField extend = clazz.getField("extend", new Version("4.0.0"));
70
71 assertTrue(extend.hasMetadata(XmlFieldMetadata.ID));
72
73 XmlFieldMetadata xml = (XmlFieldMetadata) extend.getMetadata(XmlFieldMetadata.ID);
74
75 assertNotNull(xml);
76
77 assertTrue(xml.isAttribute());
78
79 assertEquals("extender", xml.getTagName());
80
81 ModelField build = clazz.getField("build", new Version("4.0.0"));
82
83 assertTrue(build.hasMetadata(XmlFieldMetadata.ID));
84
85 xml = (XmlFieldMetadata) build.getMetadata(XmlFieldMetadata.ID);
86
87 assertNotNull(xml);
88
89 assertEquals("builder", xml.getTagName());
90
91
92 Map<String, Object> parameters = getModelloParameters("4.0.0", 8);
93
94 modello.generate(model, "java", parameters);
95 modello.generate(model, "xpp3-writer", parameters);
96 modello.generate(model, "xpp3-reader", parameters);
97
98 addDependency("org.xmlunit", "xmlunit-core");
99 compileGeneratedSources(8);
100
101
102 System.setProperty("version", getModelloVersion());
103
104 verifyCompiledGeneratedSources("org.codehaus.modello.generator.xml.xpp3.Xpp3Verifier");
105 }
106 }