1 package org.codehaus.modello.plugin.converters;
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.io.Reader;
26 import java.util.Properties;
27
28 import org.codehaus.modello.AbstractModelloJavaGeneratorTest;
29 import org.codehaus.modello.ModelloException;
30 import org.codehaus.modello.ModelloParameterConstants;
31 import org.codehaus.modello.core.ModelloCore;
32 import org.codehaus.modello.model.Model;
33
34
35
36 public class ConverterGeneratorTest extends AbstractModelloJavaGeneratorTest {
37 public ConverterGeneratorTest() {
38 super("converters");
39 }
40
41 public void testConverterGenerator() throws Throwable {
42 generateConverterClasses(getXmlResourceReader("/models/maven.mdo"), "3.0.0", "4.0.0");
43
44 generateConverterClasses(getXmlResourceReader("/features.mdo"), "1.0.0", "1.1.0");
45
46 addDependency("org.codehaus.woodstox", "stax2-api");
47 addDependency("com.fasterxml.woodstox", "woodstox-core");
48
49 compileGeneratedSources();
50
51 verifyCompiledGeneratedSources("ConvertersVerifier");
52 }
53
54 private void generateConverterClasses(Reader modelReader, String fromVersion, String toVersion) throws Throwable {
55 ModelloCore modello = (ModelloCore) lookup(ModelloCore.ROLE);
56
57 Model model = modello.loadModel(modelReader);
58
59 Properties parameters = new Properties();
60 parameters.setProperty(
61 ModelloParameterConstants.OUTPUT_DIRECTORY, getOutputDirectory().getAbsolutePath());
62 parameters.setProperty(ModelloParameterConstants.ALL_VERSIONS, fromVersion + "," + toVersion);
63
64 generateClasses(parameters, modello, model, fromVersion, toVersion, "java");
65 generateClasses(parameters, modello, model, fromVersion, toVersion, "stax-reader");
66 generateClasses(parameters, modello, model, fromVersion, toVersion, "stax-writer");
67 generateClasses(parameters, modello, model, fromVersion, toVersion, "converters");
68 }
69
70 private void generateClasses(
71 Properties parameters,
72 ModelloCore modello,
73 Model model,
74 String fromVersion,
75 String toVersion,
76 String outputType)
77 throws ModelloException {
78 parameters.setProperty(ModelloParameterConstants.PACKAGE_WITH_VERSION, Boolean.toString(false));
79 parameters.setProperty(ModelloParameterConstants.VERSION, toVersion);
80 modello.generate(model, outputType, parameters);
81
82 parameters.setProperty(ModelloParameterConstants.PACKAGE_WITH_VERSION, Boolean.toString(true));
83 parameters.setProperty(ModelloParameterConstants.VERSION, fromVersion);
84 modello.generate(model, outputType, parameters);
85
86 parameters.setProperty(ModelloParameterConstants.PACKAGE_WITH_VERSION, Boolean.toString(true));
87 parameters.setProperty(ModelloParameterConstants.VERSION, toVersion);
88 modello.generate(model, outputType, parameters);
89 }
90 }