package org.fcrepo.test.api;
import static org.custommonkey.xmlunit.XMLAssert.assertXpathExists;
import java.util.HashMap;
import java.util.Map;
import junit.framework.JUnit4TestAdapter;
import org.custommonkey.xmlunit.NamespaceContext;
import org.custommonkey.xmlunit.SimpleNamespaceContext;
import org.custommonkey.xmlunit.XMLUnit;
import org.fcrepo.test.FedoraServerTestCase;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.JUnitCore;
import org.xml.sax.InputSource;
import com.yourmediashelf.fedora.client.FedoraClient;
import com.yourmediashelf.fedora.client.FedoraCredentials;
import com.yourmediashelf.fedora.client.response.GetObjectHistoryResponse;
public class TestExampleWithMediashelfClient extends FedoraServerTestCase {
private static org.fcrepo.client.FedoraClient s_client;
private FedoraClient client;
@BeforeClass
public static void bootstrap() throws Exception {
s_client = getFedoraClient();
//TODO what directory is demo:5 in?
ingestSimpleDocumentDemoObjects( s_client);
}
@AfterClass
public static void cleanUp() throws Exception {
purgeDemoObjects(s_client);
s_client.shutdown();
}
@Before
public void setUp() throws Exception {
client = new FedoraClient(new FedoraCredentials(getBaseURL(),
getUsername(), getPassword()));
Map<String, String> nsMap = new HashMap<String, String>();
nsMap.put(ACCESS.prefix, ACCESS.uri);
NamespaceContext ctx = new SimpleNamespaceContext(nsMap);
XMLUnit.setXpathNamespaceContext(ctx);
}
@Test
public void testObjectHistory() throws Exception {
GetObjectHistoryResponse response = FedoraClient.getObjectHistory(
"demo:18").execute(client);
assertXpathExists(
"/access:fedoraObjectHistory/access:objectChangeDate",
new InputSource(response.getEntityInputStream()));
}
@After
public void tearDown() {
XMLUnit.setXpathNamespaceContext(SimpleNamespaceContext.EMPTY_CONTEXT);
}
public static junit.framework.Test suite() {
return new JUnit4TestAdapter(TestExampleWithMediashelfClient.class);
}
public static void main(String[] args) {
JUnitCore.runClasses(TestExampleWithMediashelfClient.class);
}
}