package org.skyscreamer.yoga.demo.util;
import java.util.Map;
import java.util.Map.Entry;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.skyscreamer.yoga.demo.test.BeanContext;
import org.springframework.web.client.RestTemplate;
/**
* Created by IntelliJ IDEA. User: Carter Page Date: 4/19/11 Time: 6:18 PM
*/
public final class TestUtil
{
protected final Log _log = LogFactory.getLog( getClass() );
protected static BeanContext context;
public static void setContext( BeanContext context )
{
TestUtil.context = context;
}
public static <T> T getBean ( Class<T> type )
{
return context.getBean( type );
}
public static JSONObject getJSONObject( String url, Map<String, String> params ) throws JSONException
{
return new JSONObject( getContent( url, params ) );
}
public static JSONArray getJSONArray( String url, Map<String, String> params ) throws JSONException
{
return new JSONArray( getContent( url, params ) );
}
public static String getContent( String url, Map<String, String> params )
{
RestTemplate restTemplate = new RestTemplate();
StringBuilder sb = new StringBuilder( "http://localhost:8082" ).append( url ).append( ".json" );
addParams( params, sb );
return restTemplate.getForObject( sb.toString(), String.class );
}
public static void addParams( Map<String, String> params, StringBuilder sb )
{
if ( params == null )
return;
String append = "?";
for ( Entry<String, String> entry : params.entrySet() )
{
sb.append( append ).append( entry.getKey() ).append( "=" ).append( entry.getValue() );
append = "&";
}
}
}