Package org.fcrepo.test.integration.cma

Source Code of org.fcrepo.test.integration.cma.ContentModelDSInputTest

/* 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 org.fcrepo.test.integration.cma;

import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertTrue;
import static org.fcrepo.test.integration.cma.Util.filterMethods;

import org.fcrepo.client.FedoraClient;
import org.fcrepo.server.access.FedoraAPIAMTOM;
import org.fcrepo.server.types.gen.ObjectMethodsDef;
import org.fcrepo.test.FedoraServerTestCase;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;


/**
* Tests disseminations where the sDep's DSInputSpec requires a datastream
* from the content model object.
*
* @author Edwin Shin
* @since 3.1
* @version $Id$
*/
public class ContentModelDSInputTest {

    private static FedoraClient s_client;

    private static final String OBJECT_PID = "demo:dc2mods.1";

    private static final String SDEF_PID = "demo:dc2mods.sdef";

    private static final String SDEF_METHOD = "transform";

    private static final String DC2MODS_DEPLOYMENT_BASE = "cma-examples/dc2mods";

    public static junit.framework.Test suite() {
        return new junit.framework.JUnit4TestAdapter(ContentModelDSInputTest.class);
    }

    @BeforeClass
    public static void bootstrap() throws Exception {

        s_client =
                new FedoraClient(FedoraServerTestCase.getBaseURL(),
                                 FedoraServerTestCase.getUsername(),
                                 FedoraServerTestCase.getPassword());
        Util.ingestTestObjects(s_client, DC2MODS_DEPLOYMENT_BASE);
    }
   
    @AfterClass
    public static void cleanUp() throws Exception {
        FedoraServerTestCase.purgeDemoObjects(s_client);
        s_client.shutdown();
    }

    /* Assure that listMethods works as advertised */
    @Test
    public void testListMethods() throws Exception {
        FedoraAPIAMTOM apia = s_client.getAPIAMTOM();
        ObjectMethodsDef[] methods;

        methods = filterMethods(apia.listMethods(OBJECT_PID, null).toArray(new ObjectMethodsDef[0]));

        assertEquals("Wrong number of methods", 1, methods.length);
        assertEquals(methods[0].getServiceDefinitionPID(), SDEF_PID);
        assertEquals(methods[0].getMethodName(), SDEF_METHOD);
    }

    /* Assure that disseminations return expected content */
    @Test
    public void testDissemination() throws Exception {
        // TODO use XMLUnit to validate content
        assertTrue("Wrong dissemination content",
                   getDissemination(OBJECT_PID, SDEF_PID, SDEF_METHOD)
                           .contains("<mods xmlns="));
    }

    /* Assure that only methods in SDefs work */

    private String getDissemination(String pid, String sDef, String method)
            throws Exception {
        return Util.getDissemination(s_client, pid, sDef, method);
    }

}
TOP

Related Classes of org.fcrepo.test.integration.cma.ContentModelDSInputTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.