@Test
public void testObjectConversion_additionalProperties() throws Exception {

    ModelNode schema =
            json("{\"type\": \"object\", \"properties\": {\"a\": {\"type\": \"integer\"}, " +
                    "\"b\": {\"type\": \"boolean\"}}, " +
                    "\"additionalProperties\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}}}");
    ModelNode json = json("{\"a\": 4, \"b\": true, \"c\": [], \"d\": [\"x\"]}");
    PlexusConfiguration config = SchemaDrivenJSONToXmlConverter.convert(json, schema, "tag", null);
    assertNotNull(config);
    assertNull(config.getValue());
    assertEquals(4, config.getChildCount());
    assertEquals("a", config.getChild(0).getName());
    assertEquals("4", config.getChild(0).getValue());
    assertEquals("b", config.getChild(1).getName());
    assertEquals("true", config.getChild(1).getValue());
    assertEquals("c", config.getChild(2).getName());
    assertNull(config.getChild(2).getValue());
    assertEquals(0, config.getChild(2).getChildCount());
    assertEquals("d", config.getChild(3).getName());
    assertNull(config.getChild(3).getValue());
    assertEquals(1, config.getChild(3).getChildCount());
    assertEquals("item", config.getChild(3).getChild(0).getName());
    assertEquals("x", config.getChild(3).getChild(0).getValue());
}