aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/com/android/xsdc/cpp/TestCppCodeGenerator.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/android/xsdc/cpp/TestCppCodeGenerator.java')
-rw-r--r--src/test/java/com/android/xsdc/cpp/TestCppCodeGenerator.java33
1 files changed, 30 insertions, 3 deletions
diff --git a/src/test/java/com/android/xsdc/cpp/TestCppCodeGenerator.java b/src/test/java/com/android/xsdc/cpp/TestCppCodeGenerator.java
index 20dca83..6106696 100644
--- a/src/test/java/com/android/xsdc/cpp/TestCppCodeGenerator.java
+++ b/src/test/java/com/android/xsdc/cpp/TestCppCodeGenerator.java
@@ -17,6 +17,7 @@
package com.android.xsdc.cpp;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import com.android.xsdc.FileSystem;
@@ -60,7 +61,8 @@ public class TestCppCodeGenerator {
/*writer=*/ true,
CppCodeGenerator.GENERATE_PARSER,
false,
- false);
+ false,
+ null);
FileSystem fs = new FileSystem(files);
gen.print(fs);
@@ -78,7 +80,8 @@ public class TestCppCodeGenerator {
false,
CppCodeGenerator.GENERATE_PARSER,
false,
- false);
+ false,
+ null);
FileSystem fs = new FileSystem(files);
gen.print(fs);
@@ -97,7 +100,8 @@ public class TestCppCodeGenerator {
false,
CppCodeGenerator.GENERATE_PARSER | CppCodeGenerator.GENERATE_ENUMS,
false,
- false);
+ false,
+ null);
FileSystem fs = new FileSystem(files);
gen.print(fs);
@@ -120,4 +124,27 @@ public class TestCppCodeGenerator {
parser.parse(new ByteArrayInputStream(bytes), xsdHandler);
return xsdHandler.getSchema();
}
+
+ @Test
+ public void generateParsersForSpecifiedRoot() throws Exception {
+ Map<String, StringBuffer> files = new TreeMap<>();
+ String schema = "<xs:schema xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">\n"
+ + " <xs:element name=\"root1\" type=\"xs:string\" />\n"
+ + " <xs:element name=\"root2\" type=\"xs:string\" />\n"
+ + "</xs:schema>";
+ CppCodeGenerator gen =
+ new CppCodeGenerator(
+ parseSchema(schema),
+ "com.abc",
+ false,
+ CppCodeGenerator.GENERATE_PARSER | CppCodeGenerator.GENERATE_ENUMS,
+ false,
+ false,
+ new String[]{"root1"});
+
+ FileSystem fs = new FileSystem(files);
+ gen.print(fs);
+ assertTrue(files.get("com_abc.cpp").toString().contains("readRoot1"));
+ assertFalse(files.get("com_abc.cpp").toString().contains("readRoot2"));
+ }
}