Package org.fcrepo.server.storage.translation

Source Code of org.fcrepo.server.storage.translation.TestMETSFedoraExt1_1DOSerializer

/* 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.server.storage.translation;

import java.util.HashMap;
import java.util.Map;

import javax.xml.transform.TransformerException;

import org.custommonkey.xmlunit.NamespaceContext;
import org.custommonkey.xmlunit.SimpleNamespaceContext;
import org.custommonkey.xmlunit.XMLUnit;
import org.custommonkey.xmlunit.exceptions.XpathException;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import org.w3c.dom.Document;

import org.fcrepo.common.Models;
import org.fcrepo.server.storage.translation.METSFedoraExt1_1DOSerializer;
import org.fcrepo.server.storage.types.DigitalObject;

import static org.fcrepo.common.Constants.METS;
import static org.fcrepo.common.Constants.XLINK;
import static org.fcrepo.common.Models.FEDORA_OBJECT_3_0;



/**
* Unit tests for METSFedoraExt1_1DOSerializer.
*
* @author Chris Wilper
*/
public class TestMETSFedoraExt1_1DOSerializer
        extends TestMETSFedoraExtDOSerializer {

    public TestMETSFedoraExt1_1DOSerializer() {
        // superclass sets protected field m_serializer as given below
        super(new METSFedoraExt1_1DOSerializer());
    }

    //---
    // Setup/Teardown
    //---

    @Before
    @Override
    public void setUp() {
        super.setUp();
        Map<String, String> nsMap = new HashMap<String, String>();
        nsMap.put(METS.prefix, METS.uri);
        nsMap.put(XLINK.prefix, XLINK.uri);
        NamespaceContext ctx = new SimpleNamespaceContext(nsMap);
        XMLUnit.setXpathNamespaceContext(ctx);
    }

    @Override
    @After
    public void tearDown() {
        XMLUnit.setXpathNamespaceContext(SimpleNamespaceContext.EMPTY_CONTEXT);
    }

    //---
    // Tests
    //---

    @Test
    public void testXLinkNamespace() throws TransformerException, XpathException {
        doTestXLinkNamespace();
    }

    @Test
    public void testVersionAttribute() throws TransformerException, XpathException {
        DigitalObject obj = createTestObject(FEDORA_OBJECT_3_0);
        Document xml = doSerializeOrFail(obj);
        assertXpathExists(ROOT_PATH + "[@EXT_VERSION = '1.1']", xml);
    }

    //@Test
    /* FIXME: Not sure how this is supposed to work out in METS.. */
    //public void testCModelFedoraObjectType() throws TransformerException {
    //    DigitalObject obj;
    //    Document xml;

    //    obj = createTestObject(DigitalObject.FEDORA_CONTENT_MODEL_OBJECT);
    //    xml = doSerializeOrFail(obj);
    //    assertXpathExists(ROOT_PATH + "[@TYPE='"
    //            + MODEL.CMODEL_OBJECT.localName + "']", xml);
    //}

    @Test
    public void testSerializeSimpleCModelObject() {
        doSerializeAllOrFail(createTestObject(Models.CONTENT_MODEL_3_0));
    }

    // Supports legacy test runners
    public static junit.framework.Test suite() {
        return new junit.framework.JUnit4TestAdapter(TestMETSFedoraExt1_1DOSerializer.class);
    }

}
TOP

Related Classes of org.fcrepo.server.storage.translation.TestMETSFedoraExt1_1DOSerializer

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.