/**
*
*/
package com.github.lpezet.antiope2.samples.yahoo;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.lpezet.antiope2.retrofitted.AntiopeError;
import com.github.lpezet.antiope2.retrofitted.ErrorHandler;
import com.github.lpezet.antiope2.retrofitted.RestAdapter;
import com.github.lpezet.antiope2.retrofitted.converter.JacksonConverter;
/**
* @author Luc Pezet
*
*/
public class YahooWeatherAPITest {
private static Logger mLogger = LoggerFactory.getLogger(YahooWeatherAPITest.class);
private static class MyErrorHandler implements ErrorHandler {
@Override
public Throwable handleError(AntiopeError pCause) {
mLogger.error("Error!", pCause);
return pCause;
}
}
private static final ErrorHandler ERROR_HANDLER = new MyErrorHandler();
@Test
public void forecastRetrofitted() throws Exception {
RestAdapter oAdapter = new RestAdapter.Builder()
.endpoint("http://query.yahooapis.com/")
.converter(new JacksonConverter())
.errorHandler(ERROR_HANDLER)
.build();
YahooWeatherAPI oAPI = oAdapter.create(YahooWeatherAPI.class);
ForecastResponse oResponse = oAPI.forecast("48907");
assertThat( oResponse ).isNotNull();
assertNotNull( oResponse.getQuery() );
assertEquals(1, oResponse.getQuery().getCount());
assertNotNull( oResponse.getQuery().getResults() );
assertNotNull( oResponse.getQuery().getResults().getChannel() );
assertNotNull( oResponse.getQuery().getResults().getChannel().getItem() );
//printJson( oResponse );
}
private void printJson(Object pValue) throws Exception {
System.out.println( new ObjectMapper().writeValueAsString( pValue ) );
}
}