/* The contents of this file are subject to the license and copyright terms * detailed in the license directory at the root of the source tree (also * available online at http://fedora-commons.org/license/). */ package fedora.server.test; import fedora.common.Constants; import fedora.common.Models; import fedora.server.Server; import fedora.server.storage.DOReader; import fedora.server.storage.DirectoryBasedRepositoryReader; import fedora.server.storage.ServiceDefinitionReader; import fedora.server.storage.ServiceDeploymentReader; import fedora.server.storage.translation.DODeserializer; import fedora.server.storage.translation.DOSerializer; import fedora.server.storage.translation.DOTranslatorImpl; import fedora.server.storage.translation.METSFedoraExt1_1DODeserializer; import fedora.server.storage.translation.METSFedoraExt1_1DOSerializer; import junit.framework.TestCase; import java.io.File; import java.util.HashMap; /** * Tests the implementation of the RepositoryReader interface, * DirectoryBasedRepositoryReader. * * @author Chris Wilper */ public class RepositoryReaderTest extends TestCase implements Constants { private final File m_repoDir; private DirectoryBasedRepositoryReader m_repoReader; public RepositoryReaderTest(String fedoraHome, String label) { super(label); m_repoDir = new File(new File(fedoraHome), "demo"); } @Override public void setUp() { try { String mets = METS_EXT1_1.uri; HashMap<String, DOSerializer> sers = new HashMap<String, DOSerializer>(); sers.put(mets, new METSFedoraExt1_1DOSerializer()); HashMap<String, DODeserializer> desers = new HashMap<String, DODeserializer>(); desers.put(mets, new METSFedoraExt1_1DODeserializer()); DOTranslatorImpl translator = new DOTranslatorImpl(sers, desers); m_repoReader = new DirectoryBasedRepositoryReader(m_repoDir, translator, mets, mets, "UTF-8"); } catch (Exception e) { System.out.println("ERROR: " + e.getClass().getName() + ": " + e.getMessage()); } } public void testList() { try { String[] pids = m_repoReader.listObjectPIDs(null); System.out.println("Repository has " + pids.length + " objects."); } catch (Exception e) { System.out.println("ERROR: " + e.getClass().getName() + ": " + e.getMessage()); } } public void testGetReader() { try { String[] pids = m_repoReader.listObjectPIDs(null); for (String element : pids) { DOReader r = m_repoReader.getReader(Server.USE_DEFINITIVE_STORE, null, element); System.out.println(r.GetObjectPID() + " found via DOReader."); } } catch (Exception e) { System.out.println("ERROR: " + e.getClass().getName() + ": " + e.getMessage()); } } public void testGetSDefReader() { try { String[] pids = m_repoReader.listObjectPIDs(null); for (String element : pids) { DOReader r = m_repoReader.getReader(Server.USE_DEFINITIVE_STORE, null, element); if (r.hasContentModel( Models.SERVICE_DEPLOYMENT_3_0)) { ServiceDefinitionReader dr = m_repoReader .getServiceDefinitionReader(Server.USE_DEFINITIVE_STORE, null, element); System.out.println(dr.GetObjectPID() + " found via getSDefReader."); } } } catch (Exception e) { System.out.println("ERROR: " + e.getClass().getName() + ": " + e.getMessage()); } } public void testGetSDepReader() { try { String[] pids = m_repoReader.listObjectPIDs(null); for (String element : pids) { DOReader r = m_repoReader.getReader(Server.USE_DEFINITIVE_STORE, null, element); if (r.hasContentModel( Models.SERVICE_DEPLOYMENT_3_0)) { ServiceDeploymentReader mr = m_repoReader .getServiceDeploymentReader(Server.USE_DEFINITIVE_STORE, null, element); System.out.println(mr.GetObjectPID() + " found via getSDepReader."); } } } catch (Exception e) { System.out.println("ERROR: " + e.getClass().getName() + ": " + e.getMessage()); } } public static void main(String[] args) { RepositoryReaderTest test = new RepositoryReaderTest(Constants.FEDORA_HOME, "Testing DirectoryBasedRepositoryReader"); test.setUp(); test.testList(); test.testGetReader(); test.testGetSDefReader(); test.testGetSDepReader(); } }