package org.geotools.kml.bindings;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import org.geotools.kml.Folder;
import org.geotools.kml.v22.KML;
import org.geotools.kml.v22.KMLTestSupport;
import org.geotools.xml.Binding;
import org.opengis.feature.simple.SimpleFeature;
public class NameBindingTest extends KMLTestSupport {
public void testType() throws Exception {
assertEquals(String.class, binding(KML.name).getType());
}
public void testExecutionMode() throws Exception {
assertEquals(Binding.OVERRIDE, binding(KML.name).getExecutionMode());
}
public void testParseName() throws Exception {
String xml = "<name>fleem</name>";
buildDocument(xml);
String name = (String) parse();
assertEquals("fleem", name);
}
public void testParseNameInFolder() throws Exception {
String xml = "<kml><Folder>" + "<name>foo</name>" + "<Placemark>" + "<name>bar</name>"
+ "</Placemark>" + "</Folder></kml>";
buildDocument(xml);
SimpleFeature document = (SimpleFeature) parse();
assertEquals("foo", document.getAttribute("name"));
@SuppressWarnings("unchecked")
Collection<SimpleFeature> features = (Collection<SimpleFeature>) document
.getAttribute("Feature");
assertEquals(1, features.size());
SimpleFeature feature = features.iterator().next();
Map<Object, Object> userData = feature.getUserData();
Object folderObject = userData.get("Folder");
assertNotNull("No folder user data", folderObject);
assertTrue("Unknown folder object in user data", folderObject instanceof List<?>);
@SuppressWarnings("unchecked")
List<Folder> folders = (List<Folder>) folderObject;
assertEquals(1, folders.size());
assertEquals("foo", folders.get(0).getName());
}
}