| /* |
| * Copyright 1999-2001,2004 The Apache Software Foundation. |
| * |
| * Licensed 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.IOException; |
| import java.io.StringReader; |
| |
| import junit.framework.TestCase; |
| |
| import org.apache.catalina.cluster.tcp.ReplicationTransmitter; |
| import org.apache.catalina.core.StandardContext; |
| import org.apache.catalina.core.StandardServer; |
| import org.apache.catalina.mbeans.ServerLifecycleListener; |
| import org.apache.tomcat.util.digester.Digester; |
| import org.xml.sax.SAXException; |
| |
| /** |
| * @author Peter Rossbach |
| * |
| */ |
| public class StoreLoaderTest extends TestCase { |
| |
| public void testDigester() throws IOException, SAXException { |
| Digester digester = StoreLoader.createDigester(); |
| String example = "<Registry name=\"Tomcat\" version=\"5.5.0\" encoding=\"UTF-8\" >" |
| + " <Description " |
| + " tag=\"Server\"" |
| + " standard=\"true\"" |
| + " default=\"true\"" |
| + " tagClass=\"org.apache.catalina.core.StandardServer\"" |
| + " storeFactoryClass=\"org.apache.catalina.storeconfig.StandardServerSF\">" |
| + " </Description>" + "</Registry>"; |
| StringReader reader = new StringReader(example); |
| StoreRegistry registry = (StoreRegistry) digester.parse(reader); |
| assertNotNull(registry); |
| assertEquals("Tomcat", registry.getName()); |
| assertEquals("5.5.0", registry.getVersion()); |
| StoreDescription desc = registry.findDescription(StandardServer.class); |
| assertNotNull(desc); |
| assertEquals("org.apache.catalina.core.StandardServer", desc |
| .getTagClass()); |
| assertEquals("Server", desc.getTag()); |
| } |
| |
| public void testLoadRegistry() { |
| StoreLoader loader = new StoreLoader(); |
| loader.load(); |
| StoreRegistry registry = loader.getRegistry(); |
| assertNotNull(registry); |
| assertEquals("UTF-8", registry.getEncoding()); |
| StoreDescription desc = registry.findDescription(StandardServer.class); |
| assertNotNull(desc); |
| assertEquals("org.apache.catalina.core.StandardServer", desc |
| .getTagClass()); |
| desc = registry.findDescription(StandardContext.class); |
| assertNotNull(desc); |
| assertEquals(StandardContext.class.getName(), desc.getTagClass()); |
| assertTrue(desc.isStoreSeparate()); |
| assertNotNull(desc.getStoreFactory()); |
| assertEquals(registry, desc.getStoreFactory().getRegistry()); |
| assertEquals(StandardContextSF.class, desc.getStoreFactory().getClass()); |
| desc = registry |
| .findDescription("org.apache.catalina.core.StandardServer.[ServerLifecycleListener]"); |
| assertEquals(ServerLifecycleListener.class.getName(), desc |
| .getTagClass()); |
| desc = registry.findDescription(ReplicationTransmitter.class); |
| assertNotNull(desc); |
| assertEquals(ReplicationTransmitter.class.getName(), desc |
| .getTagClass()); |
| assertNotNull(desc.getStoreFactory()); |
| assertEquals(IDynamicPropertyStoreAppender.class, desc.getStoreFactory().getStoreAppender().getClass() |
| ); |
| |
| } |
| } |