complexValueType.get("list-int-value", DESCRIPTION).set("An int list value");
complexValueType.get("list-int-value", TYPE).set(ModelType.LIST);
complexValueType.get("list-int-value", VALUE_TYPE).set(ModelType.INT);
description.get(VALUE_TYPE).set(complexValueType);
TypeConverter converter = getConverter(description);
ArrayType<CompositeType> arrayType = assertCast(ArrayType.class, converter.getOpenType());
CompositeType type = assertCast(CompositeType.class, arrayType.getElementOpenType());
Set<String> keys = type.keySet();
Assert.assertEquals(2, keys.size());
assertCompositeType(type, "int-value", Integer.class.getName(), "An int value");
assertCompositeType(type, "list-int-value", Integer[].class.getName(), "An int list value");
ModelNode node = new ModelNode();
ModelNode entry = new ModelNode();
entry.get("int-value").set(1);
entry.get("list-int-value").add(2);
entry.get("list-int-value").add(3);
node.add(entry);
entry = new ModelNode();
entry.get("int-value").set(4);
entry.get("list-int-value").add(5);
entry.get("list-int-value").add(6);
node.add(entry);
CompositeData[] datas = assertCast(CompositeData[].class, converter.fromModelNode(node));
Assert.assertEquals(datas[0].getCompositeType(), datas[1].getCompositeType());
Assert.assertEquals(type, datas[0].getCompositeType());
Assert.assertEquals(node, converter.toModelNode(datas));
}