package org.jbehave.core.io.rest.xwiki; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.startsWith; import java.io.IOException; import java.net.MalformedURLException; import org.apache.commons.io.IOUtils; import org.jbehave.core.io.rest.RESTClient.Type; import org.junit.Test; public class LoadFromXWikiBehaviour { @Test public void canFormatURIForJSON() { LoadFromXWiki loader = new LoadFromXWiki(Type.JSON); String url = "http://localhost:8080/xwiki/rest/wikis/xwiki/spaces/Main/pages/some_story"; String uri = loader.uri(url, Type.JSON); assertThat(uri, equalTo(url+"?media=json")); } @Test public void canFormatURIForXML() { LoadFromXWiki loader = new LoadFromXWiki(Type.XML); String url = "http://localhost:8080/xwiki/rest/wikis/xwiki/spaces/Main/pages/some_story"; String uri = loader.uri(url, Type.XML); assertThat(uri, equalTo(url+"?media=xml")); } @Test public void canReadFromXWikiAsJSON() { LoadFromXWiki loader = new LoadFromXWiki(Type.JSON); String entity = read("xwiki.json"); String text = loader.text(entity, Type.JSON); assertThat(text, startsWith("Narrative")); } @Test public void canReadFromXWikiAsXML() throws MalformedURLException { LoadFromXWiki loader = new LoadFromXWiki(Type.XML); String entity = read("xwiki.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); } } }