package com.gisgraphy.rest;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;
import org.junit.Assert;
import org.junit.Test;
import com.gisgraphy.addressparser.AddressQuery;
import com.gisgraphy.addressparser.exception.AddressParserException;
public class BeanToQueryStringTest {
@Test(expected=AddressParserException.class)
public void toQueryStringWithNull(){
BeanToQueryString.toQueryString(null);
}
@Test
public void toQueryStringWithSomeNullValues(){
AddressQuery query = new AddressQuery("my address", "country");
String queryString = BeanToQueryString.toQueryString(query);
Map<String, String> parameters = splitURLParams(queryString,"&");
Assert.assertTrue(queryString.startsWith("?"));
Assert.assertEquals(query.getAddress(),parameters.get("address"));
Assert.assertEquals(4,parameters.size());
Assert.assertEquals(query.getCountry(),parameters.get("country"));
Assert.assertNull(parameters.get("callback"));
}
private static HashMap<String, String> splitURLParams(String completeURL,
String andSign) {
int i;
HashMap<String, String> searchparms = new HashMap<String, String>();
;
i = completeURL.indexOf("?");
if (i > -1) {
String searchURL = completeURL
.substring(completeURL.indexOf("?") + 1);
String[] paramArray = searchURL.split(andSign);
for (int c = 0; c < paramArray.length; c++) {
String[] paramSplited = paramArray[c].split("=");
try {
searchparms.put(paramSplited[0], java.net.URLDecoder
.decode(paramSplited[1], "UTF-8"));
} catch (UnsupportedEncodingException e) {
return new HashMap<String, String>();
}
}
// dumpHashtable;
java.util.Iterator<String> keys = searchparms.keySet().iterator();
while (keys.hasNext()) {
String s = (String) keys.next();
}
}
return searchparms;
}
}