package de.twenty11.skysail.server.ext.notes;
import static org.junit.Assert.fail;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import net.thucydides.core.annotations.Step;
import org.codehaus.jackson.map.ObjectMapper;
public class JacksonSteps {
private ObjectMapper mapper = new ObjectMapper();
@Step
public Integer getFromJson(String element, String result) {
Map<?, ?> folderMap;
try {
folderMap = mapper.readValue(result, Map.class);
Object data = folderMap.get("data");
if (data instanceof Map) {
return (Integer) ((Map<?, ?>) data).get(element);
} else if (data instanceof List) {
List<?> dataAsList = (List<?>) data;
return (Integer) ((Map<?, ?>) dataAsList.get(0)).get(element);
} else {
throw new IllegalArgumentException("cannot map data");
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Step
public void assertResultIsValidJson(String result) {
try {
mapper.readValue(result, Map.class);
} catch (IOException e) {
e.printStackTrace();
fail();
}
}
}