}
+ static class ComplexAnyXmlVerifier extends LeafVerifier {
+
+ ComplexAnyXmlVerifier() {
+ super( null, JsonToken.BEGIN_OBJECT );
+ }
+
+ @Override
+ void verify( JsonReader reader, String keyName ) throws IOException {
+
+ reader.beginObject();
+ String innerKey = reader.nextName();
+ assertEquals( "Json reader child key for " + keyName, "data", innerKey );
+ assertEquals( "Json token type for key " + innerKey, JsonToken.BEGIN_OBJECT, reader.peek() );
+
+ reader.beginObject();
+ verifyLeaf( reader, innerKey, "leaf1", "leaf1-value" );
+ verifyLeaf( reader, innerKey, "leaf2", "leaf2-value" );
+
+ String nextName = reader.nextName();
+ assertEquals( "Json reader child key for " + innerKey, "leaf-list", nextName );
+ reader.beginArray();
+ assertEquals( "Json value for key " + nextName, "leaf-list-value1", reader.nextString() );
+ assertEquals( "Json value for key " + nextName, "leaf-list-value2", reader.nextString() );
+ reader.endArray();
+
+ nextName = reader.nextName();
+ assertEquals( "Json reader child key for " + innerKey, "list", nextName );
+ reader.beginArray();
+ verifyNestedLists( reader, 1 );
+ verifyNestedLists( reader, 3 );
+ reader.endArray();
+
+ reader.endObject();
+ reader.endObject();
+ }
+
+ void verifyNestedLists( JsonReader reader, int leafNum ) throws IOException {
+ reader.beginObject();
+
+ String nextName = reader.nextName();
+ assertEquals( "Json reader next name", "nested-list", nextName );
+
+ reader.beginArray();
+
+ reader.beginObject();
+ verifyLeaf( reader, "nested-list", "nested-leaf", "nested-value" + leafNum++ );
+ reader.endObject();
+
+ reader.beginObject();
+ verifyLeaf( reader, "nested-list", "nested-leaf", "nested-value" + leafNum );
+ reader.endObject();
+
+ reader.endArray();
+ reader.endObject();
+ }
+
+ void verifyLeaf( JsonReader reader, String parent, String name, String value ) throws IOException {
+ String nextName = reader.nextName();
+ assertEquals( "Json reader child key for " + parent, name, nextName );
+ assertEquals( "Json token type for key " + parent, JsonToken.STRING, reader.peek() );
+ assertEquals( "Json value for key " + nextName, value, reader.nextString() );
+ }
+
+ @Override
+ Object getActualValue( JsonReader reader ) throws IOException {
+ return null;
+ }
+ }
+
@BeforeClass
public static void initialize() {
dataLoad("/cnsn-to-json/simple-data-types");
expectedMap.put( "lfunion14", new StringVerifier( "zero" ) );
expectedMap.put( "lfempty", new EmptyVerifier() );
expectedMap.put( "identityref1", new StringVerifier( "simple-data-types:iden" ) );
+ expectedMap.put( "complex-any", new ComplexAnyXmlVerifier() );
+ expectedMap.put( "simple-any", new StringVerifier( "simple" ) );
+ expectedMap.put( "empty-any", new StringVerifier( "" ) );
while (jReader.hasNext()) {
String keyName = jReader.nextName();
assertEquals( "Json token type for key " + keyName, expToken, peek );
}
- verifier.verify( jReader, keyName );;
+ verifier.verify( jReader, keyName );
}
if( !expectedMap.isEmpty() ) {