package org.simpleframework.xml.util; import java.util.Iterator; import org.simpleframework.xml.Attribute; import org.simpleframework.xml.Element; import org.simpleframework.xml.ElementList; import org.simpleframework.xml.Root; import org.simpleframework.xml.ValidationTestCase; import org.simpleframework.xml.core.Persister; public class DictionaryTest extends ValidationTestCase { private static final String LIST = "<?xml version=\"1.0\"?>\n"+ "<test name='example'>\n"+ " <list>\n"+ " <property name='1'>\n"+ " <text>one</text> \n\r"+ " </property>\n\r"+ " <property name='2'>\n"+ " <text>two</text> \n\r"+ " </property>\n"+ " <property name='3'>\n"+ " <text>three</text> \n\r"+ " </property>\n"+ " </list>\n"+ "</test>"; @Root(name="property") private static class Property implements Entry { @Element(name="text") private String text; @Attribute private String name; public String getName() { return name; } } @Root(name="test") private static class PropertySet implements Iterable<Property> { @ElementList(name="list", type=Property.class) private Dictionary<Property> list; @Attribute(name="name") private String name; public Iterator<Property> iterator() { return list.iterator(); } public Property get(String name) { return list.get(name); } public int size() { return list.size(); } } private Persister serializer; public void setUp() { serializer = new Persister(); } public void testDictionary() throws Exception { PropertySet set = (PropertySet) serializer.read(PropertySet.class, LIST); assertEquals(3, set.size()); assertEquals("one", set.get("1").text); assertEquals("two", set.get("2").text); assertEquals("three", set.get("3").text); validate(set, serializer); } }