/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.jackrabbit.webdav.simple; import junit.framework.TestCase; import org.apache.jackrabbit.server.io.DefaultHandler; import org.apache.jackrabbit.server.io.IOHandler; import org.apache.jackrabbit.server.io.IOManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.ByteArrayInputStream; import java.io.InputStream; /** * <code>ResourceConfigTest</code>... */ public class ResourceConfigTest extends TestCase { /** * logger instance */ private static final Logger log = LoggerFactory.getLogger(ResourceConfigTest.class); public void testIOManagerConfig() throws Exception { InputStream in = new ByteArrayInputStream(CONFIG_1.getBytes("UTF-8")); ResourceConfig config = new ResourceConfig(null); config.parse(in); IOManager ioMgr = config.getIOManager(); assertNotNull(ioMgr); assertEquals("org.apache.jackrabbit.server.io.IOManagerImpl", ioMgr.getClass().getName()); IOHandler[] handlers = ioMgr.getIOHandlers(); assertNotNull(handlers); assertEquals(1, handlers.length); assertEquals("org.apache.jackrabbit.server.io.DefaultHandler", handlers[0].getName()); } public void testIOManagerConfigWithParam() throws Exception { InputStream in = new ByteArrayInputStream(CONFIG_2.getBytes("UTF-8")); ResourceConfig config = new ResourceConfig(null); config.parse(in); IOManager ioMgr = config.getIOManager(); assertNotNull(ioMgr); assertEquals("org.apache.jackrabbit.server.io.IOManagerImpl", ioMgr.getClass().getName()); IOHandler[] handlers = ioMgr.getIOHandlers(); assertNotNull(handlers); assertEquals(1, handlers.length); assertEquals("org.apache.jackrabbit.server.io.DefaultHandler", handlers[0].getName()); DefaultHandler dh = (DefaultHandler) handlers[0]; assertEquals("nt:unstructured", dh.getCollectionNodeType()); assertEquals("nt:unstructured", dh.getNodeType()); assertEquals("nt:resource", dh.getContentNodeType()); } private static final String CONFIG_1 = "<config>\n" + " <!--\n" + " Defines the IOManager implementation that is responsible for passing\n" + " import/export request to the individual IO-handlers.\n" + " -->\n" + " <iomanager>\n" + " <!-- class element defines the manager to be used. The specified class\n" + " must implement the IOManager interface.\n" + " Note, that the handlers are being added and called in the order\n" + " they appear in the configuration.\n" + " -->\n" + " <class name=\"org.apache.jackrabbit.server.io.IOManagerImpl\" />\n" + " <iohandler>\n" + " <class name=\"org.apache.jackrabbit.server.io.DefaultHandler\" />\n" + " </iohandler>\n" + " </iomanager>" + "</config>"; private static final String CONFIG_2 = "<config>\n" + " <!--\n" + " Defines the IOManager implementation that is responsible for passing\n" + " import/export request to the individual IO-handlers.\n" + " -->\n" + " <iomanager>\n" + " <!-- class element defines the manager to be used. The specified class\n" + " must implement the IOManager interface.\n" + " Note, that the handlers are being added and called in the order\n" + " they appear in the configuration.\n" + " -->\n" + " <class name=\"org.apache.jackrabbit.server.io.IOManagerImpl\" />\n" + " <iohandler>\n" + " <class name=\"org.apache.jackrabbit.server.io.DefaultHandler\" />\n" + " <param name=\"collectionNodetype\" value=\"nt:unstructured\"/>\n" + " <param name=\"defaultNodetype\" value=\"nt:unstructured\"/>\n" + " <param name=\"contentNodetype\" value=\"nt:resource\"/>\n" + " </iohandler>\n" + " </iomanager>" + "</config>"; }