package org.jbehave.core.io.rest.redmine;
import java.io.IOException;
import java.net.MalformedURLException;
import org.apache.commons.io.IOUtils;
import org.jbehave.core.io.rest.RESTClient.Type;
import org.jbehave.core.io.rest.redmine.LoadFromRedmine;
import org.junit.Test;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.startsWith;
public class LoadFromRedmineBehaviour {
@Test
public void canFormatURIForJSON() {
LoadFromRedmine loader = new LoadFromRedmine(Type.JSON);
String url = "http://demo.redmine.org/project/jbehave/wiki/some_story";
String text = loader.uri(url, Type.JSON);
assertThat(text, equalTo(url+".json"));
}
@Test
public void canReadFromRedmineAsJSON() {
LoadFromRedmine loader = new LoadFromRedmine(Type.JSON);
String entity = read("redmine.json");
String text = loader.text(entity, Type.JSON);
assertThat(text, startsWith("Narrative"));
}
@Test
public void canFormatURIForXML() {
LoadFromRedmine loader = new LoadFromRedmine(Type.XML);
String url = "http://demo.redmine.org/project/jbehave/wiki/some_story";
String text = loader.uri(url, Type.XML);
assertThat(text, equalTo(url+".xml"));
}
@Test
public void canReadFromRedmineAsXML() throws MalformedURLException {
LoadFromRedmine loader = new LoadFromRedmine(Type.XML);
String entity = read("redmine.xml");
String text = loader.text(entity, Type.XML);
assertThat(text, startsWith("Narrative"));
}
private String read(String path) {
try {
return IOUtils.toString(this.getClass().getClassLoader().getResourceAsStream(path));
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}