net.handle.servlet.SettingsTest.java Source code

Java tutorial

Introduction

Here is the source code for net.handle.servlet.SettingsTest.java

Source

/*
 * Created by: christopher
 * Date: 2 Mar 2008
 * Time: 17:44:01
 *
 * <p>Copyright (C) 2008 Nature Publishing Group, Inc.</p>
 *
 * <p><a rel="license" href="http://creativecommons.org/licenses/GPL/2.0/">
 * <img alt="Creative Commons License" style="border-width:0"
 * src="http://i.creativecommons.org/l/GPL/2.0/88x62.png" /></a><br />
 * This work is licensed under a <a rel="license"
 * href="http://creativecommons.org/licenses/GPL/2.0/">Creative Commons GNU
 * General Public License License</a>.</p>
 */

package net.handle.servlet;

import static org.junit.Assert.*;

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

import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.XMLConfiguration;
import org.junit.Test;

/**
 * <p>
 * JUnit test case for {@link Settings}.
 * </p>
 *
 * @author <a href="mailto:christopher.townson@googlemail.com">Christopher Townson</a>
 */
public class SettingsTest {

    @Test
    public void testValidConfiguration() throws Exception {
        // control variables
        String datatypesRequestParameterName = "include";
        Template defaultErrorResponseTemplate = new Template(Mimetype.APPLICATION_RDF_XML, "error",
                Template.Type.ERROR_RESPONSE);
        Template defaultHandleResponseTemplate = new Template(Mimetype.APPLICATION_RDF_XML, "handle",
                Template.Type.HANDLE_RESPONSE);
        Map<Mimetype, Template> errorResponseTemplates = new HashMap<Mimetype, Template>();
        errorResponseTemplates.put(Mimetype.APPLICATION_RDF_XML,
                new Template(Mimetype.APPLICATION_RDF_XML, "error", Template.Type.ERROR_RESPONSE));
        errorResponseTemplates.put(Mimetype.TEXT_PLAIN,
                new Template(Mimetype.TEXT_PLAIN, "error", Template.Type.ERROR_RESPONSE));
        errorResponseTemplates.put(Mimetype.APPLICATION_XHTML_XML,
                new Template(Mimetype.APPLICATION_XHTML_XML, "error", Template.Type.ERROR_RESPONSE));
        String formatRequestParameterName = "format";
        String handleIdRequestParameterName = "id";
        Map<Mimetype, Template> handleResponseTemplates = new HashMap<Mimetype, Template>();
        handleResponseTemplates.put(Mimetype.APPLICATION_RDF_XML,
                new Template(Mimetype.APPLICATION_RDF_XML, "handle", Template.Type.HANDLE_RESPONSE));
        handleResponseTemplates.put(Mimetype.APPLICATION_JSON,
                new Template(Mimetype.APPLICATION_JSON, "handle", Template.Type.HANDLE_RESPONSE));
        handleResponseTemplates.put(Mimetype.TEXT_RDF_N3,
                new Template(Mimetype.TEXT_RDF_N3, "handle", Template.Type.HANDLE_RESPONSE));
        String indexRequestParameterName = "index";
        int[] preferredProtocols = Protocol.toIntArray("http, tcp");
        String typeRequestParameterName = "type";
        boolean traceMessages = true;

        // instantiate configuration
        Configuration configuration = new XMLConfiguration(SettingsTest.class.getResource("/OpenHandleTest.xml"));
        Settings settings = new Settings(configuration);

        // settings should match control
        assertEquals(datatypesRequestParameterName, settings.getDatatypesRequestParameterName());
        assertEquals(defaultErrorResponseTemplate, settings.getDefaultErrorResponseTemplate());
        assertEquals(defaultHandleResponseTemplate, settings.getDefaultHandleResponseTemplate());
        assertEquals(errorResponseTemplates, settings.getErrorResponseTemplates());
        assertEquals(formatRequestParameterName, settings.getFormatRequestParameterName());
        assertEquals(handleIdRequestParameterName, settings.getHandleIdRequestParameterName());
        assertEquals(handleResponseTemplates, settings.getHandleResponseTemplates());
        assertEquals(indexRequestParameterName, settings.getIndexRequestParameterName());
        assertEquals(Protocol.toString(preferredProtocols), Protocol.toString(settings.getPreferredProtocols()));
        assertEquals(typeRequestParameterName, settings.getTypeRequestParameterName());
        assertEquals(traceMessages, settings.isTraceMessages());
    }

    @Test(expected = SettingsException.class)
    public void testInvalidConfiguration() throws Exception {
        Configuration configuration = new XMLConfiguration(
                SettingsTest.class.getResource("/OpenHandleTestInvalid.xml"));
        Settings settings = new Settings(configuration);
        assertNull(settings);
    }

}