/*
* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2004-2008, Open Source Geospatial Foundation (OSGeo)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*/
package org.geotools.data.wms.test;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.HashMap;
import java.util.StringTokenizer;
import org.geotools.data.ows.AbstractGetCapabilitiesRequest;
import org.geotools.data.ows.Response;
import org.geotools.data.wms.response.WMSGetCapabilitiesResponse;
import org.geotools.ows.ServiceException;
/**
*
*
* @source $URL$
*/
public class GetCapabilitiesRequestTest extends ServerTestCase {
public void testGetCapabilitiesRequest() throws Exception {
URL testURL = new URL(
"http://office.refractions.net:4001/cgi-bin/mapserv?map=/opt/dra2/orthophotos/tiles.map&");
AbstractGetCapabilitiesRequest request = new Request(testURL);
URL finalURL = request.getFinalURL();
int index = finalURL.toExternalForm().lastIndexOf("?");
String urlWithoutQuery = null;
urlWithoutQuery = finalURL.toExternalForm().substring(0, index);
assertEquals(urlWithoutQuery,
"http://office.refractions.net:4001/cgi-bin/mapserv");
HashMap map = new HashMap();
map.put("VERSION", "1.1.1");
map.put("MAP", "/opt/dra2/orthophotos/tiles.map");
map.put("REQUEST", "GetCapabilities");
map.put("SERVICE", "WMS");
StringTokenizer tokenizer = new StringTokenizer(finalURL.getQuery(), "&");
while (tokenizer.hasMoreTokens()) {
String token = tokenizer.nextToken();
String[] param = token.split("=");
assertEquals((String) map.get(param[0]), param[1]);
}
}
protected class Request extends AbstractGetCapabilitiesRequest {
/**
* DOCUMENT ME!
*
* @param serverURL
*/
public Request(URL serverURL) {
super(serverURL);
// TODO Auto-generated constructor stub
}
/* (non-Javadoc)
* @see org.geotools.data.wms.request.AbstractGetCapabilitiesRequest#initVersion()
*/
protected void initVersion() {
setProperty("VERSION", "1.1.1");
}
protected void initService() {
setProperty("SERVICE", "WMS");
}
public Response createResponse(String contentType, InputStream inputStream) throws ServiceException, IOException {
return new WMSGetCapabilitiesResponse(contentType, inputStream);
}
}
}