/*
* Copyright (c) 2012. HappyDroids LLC, All rights reserved.
*/
package com.happydroids;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Lists;
import org.apach3.commons.io.FileUtils;
import org.apach3.http.Header;
import org.apach3.http.message.BasicHeader;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
public class TestHelper {
private static final String[] fixturePaths = new String[]{"fixtures/", "sparky/fixtures/", "main/fixtures/"};
public static File fixture(String fixtureFilename) throws IOException {
File file;
for (String fixturePath : fixturePaths) {
file = new File(fixturePath, fixtureFilename);
if (file.exists()) {
return file;
}
}
throw new IOException("Could not find: " + fixtureFilename + " in search paths: " + Arrays.toString(fixturePaths));
}
public static void queueApiResponseFromFixture(String uri, String fixtureFilename) throws IOException {
queueApiResponse(uri, FileUtils.readFileToString(fixture(fixtureFilename)));
}
public static void queueApiResponse(String uri, String content) throws IOException {
queueApiResponse(uri, content.getBytes());
}
public static void queueApiResponse(String uri, byte[] bytes) throws IOException {
Header[] headers = {new BasicHeader("Location", uri)};
HttpTestHelper.instance().queueResponse(uri, bytes, headers);
}
public static void disableNetworkConnection() {
}
public static ArrayList<byte[]> getQueuedRequests() {
ArrayList<byte[]> list = Lists.newArrayList();
for (LinkedList<byte[]> linkedList : HttpTestHelper.instance().getResponseQueue().values()) {
list.addAll(linkedList);
}
return list;
}
public static void clearQueuedRequests() {
HttpTestHelper.instance().getResponseQueue().clear();
}
public static Object readJson(File file) throws IOException {
return new ObjectMapper().readValue(file, Object.class);
}
public static Object readJson(String content) throws IOException {
return new ObjectMapper().readValue(content, Object.class);
}
public static Object readJson(byte[] bytes) throws IOException {
return new ObjectMapper().readValue(bytes, Object.class);
}
}