01: /* Copyright (c) 2001 - 2007 TOPP - www.openplans.org. All rights reserved.
02: * This code is licensed under the GPL 2.0 license, availible at the root
03: * application directory.
04: */
05: package org.vfny.geoserver.wms.responses.map.georss;
06:
07: import org.geoserver.data.test.MockData;
08: import org.geoserver.wms.WMSTestSupport;
09: import org.geotools.data.Query;
10: import org.vfny.geoserver.wms.WMSMapContext;
11: import org.w3c.dom.Document;
12: import org.w3c.dom.Element;
13: import org.w3c.dom.NodeList;
14: import java.io.ByteArrayInputStream;
15: import java.io.ByteArrayOutputStream;
16: import javax.xml.parsers.DocumentBuilder;
17: import javax.xml.parsers.DocumentBuilderFactory;
18:
19: public class AtomGeoRSSTransformerTest extends WMSTestSupport {
20: WMSMapContext map;
21:
22: protected void setUp() throws Exception {
23: super .setUp();
24:
25: map = new WMSMapContext(
26: createGetMapRequest(MockData.BASIC_POLYGONS));
27: map.addLayer(createMapLayer(MockData.BASIC_POLYGONS));
28: }
29:
30: public void testLatLong() throws Exception {
31: AtomGeoRSSTransformer tx = new AtomGeoRSSTransformer();
32: tx
33: .setGeometryEncoding(AtomGeoRSSTransformer.GeometryEncoding.LATLONG);
34: tx.setIndentation(2);
35:
36: ByteArrayOutputStream output = new ByteArrayOutputStream();
37: tx.transform(map, output);
38:
39: DocumentBuilder docBuilder = DocumentBuilderFactory
40: .newInstance().newDocumentBuilder();
41: Document document = docBuilder.parse(new ByteArrayInputStream(
42: output.toByteArray()));
43:
44: Element element = document.getDocumentElement();
45: assertEquals("feed", element.getNodeName());
46:
47: NodeList entries = element.getElementsByTagName("entry");
48:
49: int n = getFeatureSource(MockData.BASIC_POLYGONS).getCount(
50: Query.ALL);
51:
52: assertEquals(n, entries.getLength());
53:
54: for (int i = 0; i < entries.getLength(); i++) {
55: Element entry = (Element) entries.item(i);
56: assertEquals(1, entry.getElementsByTagName("geo:lat")
57: .getLength());
58: assertEquals(1, entry.getElementsByTagName("geo:long")
59: .getLength());
60: }
61: }
62:
63: public void testSimple() throws Exception {
64: AtomGeoRSSTransformer tx = new AtomGeoRSSTransformer();
65: tx
66: .setGeometryEncoding(AtomGeoRSSTransformer.GeometryEncoding.SIMPLE);
67: tx.setIndentation(2);
68:
69: ByteArrayOutputStream output = new ByteArrayOutputStream();
70: tx.transform(map, output);
71:
72: DocumentBuilder docBuilder = DocumentBuilderFactory
73: .newInstance().newDocumentBuilder();
74: Document document = docBuilder.parse(new ByteArrayInputStream(
75: output.toByteArray()));
76:
77: Element element = document.getDocumentElement();
78: assertEquals("feed", element.getNodeName());
79:
80: NodeList entries = element.getElementsByTagName("entry");
81:
82: int n = getFeatureSource(MockData.BASIC_POLYGONS).getCount(
83: Query.ALL);
84:
85: assertEquals(n, entries.getLength());
86:
87: for (int i = 0; i < entries.getLength(); i++) {
88: Element entry = (Element) entries.item(i);
89: assertEquals(1, entry.getElementsByTagName("georss:where")
90: .getLength());
91: assertEquals(1, entry
92: .getElementsByTagName("georss:polygon").getLength());
93: }
94: }
95: }
|