package com;
import com.octo.android.robospice.persistence.exception.SpiceException;
import com.octo.android.robospice.request.listener.RequestListener;
import com.octo.android.robospice.request.okhttp.OkHttpSpiceRequest;
import com.progscrape.BuildConfig;
import com.progscrape.app.data.Story;
import com.progscrape.data.Data;
import com.progscrape.data.FeedParser;
import com.progscrape.data.RequestExecutor;
import com.squareup.okhttp.OkHttpClient;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import static org.junit.Assert.fail;
@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, emulateSdk = 21, manifest = Config.NONE)
public class FooTest {
@Test
public void testHi() throws InterruptedException {
final OkHttpClient client = new OkHttpClient();
RequestExecutor executor = new RequestExecutor() {
@Override
public <T> void execute(OkHttpSpiceRequest<T> req, RequestListener<T> listener, boolean force) {
req.setOkHttpClient(client);
try {
listener.onRequestSuccess(req.loadDataFromNetwork());
} catch (Exception e) {
listener.onRequestFailure(new SpiceException(e));
}
}
};
Data data = new Data(executor, new FeedParser());
final CountDownLatch latch = new CountDownLatch(1);
data.getStoryData(null, new RequestListener<List<Story>>() {
@Override
public void onRequestFailure(SpiceException spiceException) {
System.out.println(spiceException);
latch.countDown();
}
@Override
public void onRequestSuccess(List<Story> stories) {
System.out.println(stories);
latch.countDown();
}
}, false);
if (!latch.await(10, TimeUnit.SECONDS))
fail("Timeout");
}
}