Package org.apache.catalina.storeconfig

Source Code of org.apache.catalina.storeconfig.StandardEngineSFTest

/*
* 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.catalina.storeconfig;

import java.io.PrintWriter;
import java.io.StringWriter;

import junit.framework.TestCase;

import org.apache.catalina.LifecycleListener;
import org.apache.catalina.Valve;
import org.apache.catalina.core.StandardEngine;
import org.apache.catalina.core.StandardHost;
import org.apache.catalina.realm.JAASRealm;
import org.apache.catalina.storeconfig.StandardEngineSF;
import org.apache.catalina.storeconfig.StoreDescription;
import org.apache.catalina.storeconfig.StoreRegistry;

/**
* @author Peter Rossbach
*/
public class StandardEngineSFTest extends TestCase {
    StoreRegistry registry;

    StringWriter writer = new StringWriter();

    PrintWriter pWriter = new PrintWriter(writer);

    StandardEngine standardEngine;

    StandardEngineSF factory;

    StoreDescription desc;

    /*
     * create registery and register Engine and direct subelement descriptors
     *
     * @see junit.framework.TestCase#setUp()
     */
    protected void setUp() throws Exception {

        super.setUp();
        registry = new StoreRegistry();
        desc = new StoreDescription();
        desc.setTag("Engine");
        desc.setTagClass("org.apache.catalina.core.StandardEngine");
        desc.setStandard(true);
        desc
                .setStoreFactoryClass("org.apache.catalina.storeconfig.StandardEngineSF");
        desc.addTransientAttribute("domain");
        registry.registerDescription(desc);
        factory = new StandardEngineSF();
        desc.setStoreFactory(factory);
        factory.setRegistry(registry);
        StoreDescription listenerdesc = registerDescriptor("Listener",
                LifecycleListener.class);

        String listenerskippables[] = {
                "org.apache.catalina.core.NamingContextListener",
                "org.apache.catalina.startup.ContextConfig",
                "org.apache.catalina.startup.EngineConfig",
                "org.apache.catalina.startup.HostConfig", };
        for (int i = 0; i < listenerskippables.length; i++)
            listenerdesc.addTransientChild(listenerskippables[i]);

        StoreDescription realmdesc = registerDescriptor("Realm",
                JAASRealm.class,
                "org.apache.catalina.storeconfig.StoreFactoryBase", true, false);
        StoreDescription hostdesc = registerDescriptor("Host",
                StandardHost.class,
                "org.apache.catalina.storeconfig.StoreFactoryBase", true, false);
        hostdesc.addTransientAttribute("domain");
        StoreDescription valvedesc = registerDescriptor("Valve", Valve.class,
                "org.apache.catalina.storeconfig.StoreFactoryBase", false,
                false);

        String skippables[] = {
                "org.apache.catalina.authenticator.BasicAuthenticator",
                "org.apache.catalina.authenticator.DigestAuthenticator",
                "org.apache.catalina.authenticator.FormAuthenticator",
                "org.apache.catalina.authenticator.NonLoginAuthenticator",
                "org.apache.catalina.authenticator.SSLAuthenticator",
                "org.apache.catalina.core.StandardContextValve",
                "org.apache.catalina.core.StandardEngineValve",
                "org.apache.catalina.core.StandardHostValve",
                "org.apache.catalina.valves.CertificatesValve",
                "org.apache.catalina.valves.ErrorReportValve",
                "org.apache.catalina.valves.RequestListenerValve", };
        for (int i = 0; i < skippables.length; i++)
            valvedesc.addTransientChild(skippables[i]);

        standardEngine = new StandardEngine();
        standardEngine.setName("Catalina");

    }

    private StoreDescription registerDescriptor(String tag, Class aClass) {
        return registerDescriptor(tag, aClass,
                "org.apache.catalina.storeconfig.StoreFactoryBase", false,
                false);
    }

    /**
     * 
     */
    private StoreDescription registerDescriptor(String tag, Class aClass,
            String factoryClass, boolean fstandard, boolean fdefault) {
        return DescriptorHelper.registerDescriptor(desc, registry, aClass
                .getName(), tag, aClass.getName(), factoryClass, fstandard,
                fdefault);
    }

    public void testStore() throws Exception {
        standardEngine
                .addLifecycleListener(new org.apache.catalina.storeconfig.InfoLifecycleListener());
        StandardHost host = new StandardHost();
        host.setName("localhost");
        standardEngine.addChild(host);
        String aspectedResult = "<Engine"
                + LF.LINE_SEPARATOR
                + "    name=\"Catalina\">"
                + LF.LINE_SEPARATOR
                + "  <Listener className=\"org.apache.catalina.storeconfig.InfoLifecycleListener\"/>"
                + LF.LINE_SEPARATOR + "  <Realm" + LF.LINE_SEPARATOR
                + "    appName=\"Catalina\"/>" + LF.LINE_SEPARATOR + "  <Host"
                + LF.LINE_SEPARATOR + "    name=\"localhost\"/>"
                + LF.LINE_SEPARATOR + "</Engine>" + LF.LINE_SEPARATOR;

        check(aspectedResult);
    }

    public void testElements() throws Exception {
        standardEngine.setName("Catalina");
        standardEngine
                .addLifecycleListener(new org.apache.catalina.storeconfig.InfoLifecycleListener());
        standardEngine
                .addLifecycleListener(new org.apache.catalina.startup.EngineConfig());
        StandardHost host = new StandardHost();
        host.setName("localhost");
        standardEngine.addChild(host);
        String aspectedResult = "<Engine"
                + LF.LINE_SEPARATOR
                + "    name=\"Catalina\">"
                + LF.LINE_SEPARATOR
                + "  <Listener className=\"org.apache.catalina.storeconfig.InfoLifecycleListener\"/>"
                + LF.LINE_SEPARATOR + "  <Realm" + LF.LINE_SEPARATOR
                + "    appName=\"Catalina\"/>" + LF.LINE_SEPARATOR + "  <Host"
                + LF.LINE_SEPARATOR + "    name=\"localhost\"/>"
                + LF.LINE_SEPARATOR + "</Engine>" + LF.LINE_SEPARATOR;
        check(aspectedResult);
    }

    public void testValve() throws Exception {
        standardEngine.setName("Catalina");
        standardEngine
                .addLifecycleListener(new org.apache.catalina.storeconfig.InfoLifecycleListener());
        standardEngine
                .addLifecycleListener(new org.apache.catalina.startup.EngineConfig());
        StandardHost host = new StandardHost();
        host.setName("localhost");
        standardEngine.addChild(host);
        standardEngine
                .addValve(new org.apache.catalina.valves.ErrorReportValve());
        standardEngine
                .addValve(new org.apache.catalina.valves.RequestDumperValve());
        String aspectedResult = "<Engine"
                + LF.LINE_SEPARATOR
                + "    name=\"Catalina\">"
                + LF.LINE_SEPARATOR
                + "  <Listener className=\"org.apache.catalina.storeconfig.InfoLifecycleListener\"/>"
                + LF.LINE_SEPARATOR
                + "  <Realm"
                + LF.LINE_SEPARATOR
                + "    appName=\"Catalina\"/>"
                + LF.LINE_SEPARATOR
                + "  <Valve className=\"org.apache.catalina.valves.RequestDumperValve\"/>"
                + LF.LINE_SEPARATOR + "  <Host" + LF.LINE_SEPARATOR
                + "    name=\"localhost\"/>" + LF.LINE_SEPARATOR + "</Engine>"
                + LF.LINE_SEPARATOR;
        check(aspectedResult);
    }

    public void testStoreEmpty() throws Exception {
        String aspectedResult = "<Engine" + LF.LINE_SEPARATOR
                + "    name=\"Catalina\">" + LF.LINE_SEPARATOR + "  <Realm"
                + LF.LINE_SEPARATOR + "    appName=\"Catalina\"/>"
                + LF.LINE_SEPARATOR + "</Engine>" + LF.LINE_SEPARATOR;
        check(aspectedResult);
    }

    protected void check(String aspectedResult) throws Exception {
        factory.store(pWriter, -2, standardEngine);
        assertEquals(aspectedResult, writer.toString());
    }

}
TOP

Related Classes of org.apache.catalina.storeconfig.StandardEngineSFTest

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.