1 package org.codehaus.modello.plugin.sax;
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 java.util.List;
26 import java.util.Properties;
27
28 import org.codehaus.modello.AbstractModelloJavaGeneratorTest;
29 import org.codehaus.modello.core.ModelloCore;
30 import org.codehaus.modello.model.Model;
31 import org.codehaus.modello.model.ModelClass;
32 import org.codehaus.modello.model.ModelField;
33 import org.codehaus.modello.model.Version;
34 import org.codehaus.modello.plugins.xml.metadata.XmlFieldMetadata;
35
36
37
38
39 public class SaxGeneratorTest extends AbstractModelloJavaGeneratorTest {
40 public SaxGeneratorTest() {
41 super("sax");
42 }
43
44 public void testXpp3Generator() throws Throwable {
45 ModelloCore modello = (ModelloCore) lookup(ModelloCore.ROLE);
46
47 Model model = modello.loadModel(getXmlResourceReader("/maven.mdo"));
48
49
50 List<ModelClass> classesList = model.getClasses(new Version("4.0.0"));
51
52 assertEquals(28, classesList.size());
53
54 ModelClass clazz = (ModelClass) classesList.get(0);
55
56 assertEquals("Model", clazz.getName());
57
58 ModelField extend = clazz.getField("extend", new Version("4.0.0"));
59
60 assertTrue(extend.hasMetadata(XmlFieldMetadata.ID));
61
62 XmlFieldMetadata xml = (XmlFieldMetadata) extend.getMetadata(XmlFieldMetadata.ID);
63
64 assertNotNull(xml);
65
66 assertTrue(xml.isAttribute());
67
68 assertEquals("extender", xml.getTagName());
69
70 ModelField build = clazz.getField("build", new Version("4.0.0"));
71
72 assertTrue(build.hasMetadata(XmlFieldMetadata.ID));
73
74 xml = (XmlFieldMetadata) build.getMetadata(XmlFieldMetadata.ID);
75
76 assertNotNull(xml);
77
78 assertEquals("builder", xml.getTagName());
79
80
81 Properties parameters = getModelloParameters("4.0.0");
82
83 modello.generate(model, "java", parameters);
84 modello.generate(model, "sax-writer", parameters);
85
86 addDependency("org.xmlunit", "xmlunit-core");
87 compileGeneratedSources();
88
89
90 System.setProperty("version", getModelloVersion());
91
92 verifyCompiledGeneratedSources("org.codehaus.modello.generator.xml.sax.SaxVerifier");
93 }
94 }