donaldp 2002/09/30 23:19:50 Added: src/test/org/apache/avalon/phoenix/components/application/test ApplicationTestCase.java MockApplicationContext.java assembly1.xml assembly2.xml Log: Simple set of unit tests that make sure that the application started up with specified asssemblies. Revision Changes Path 1.1 jakarta-avalon-phoenix/src/test/org/apache/avalon/phoenix/components/application/test/ApplicationTestCase.java Index: ApplicationTestCase.java =================================================================== /* * Copyright (C) The Apache Software Foundation. All rights reserved. * * This software is published under the terms of the Apache Software License * version 1.1, a copy of which has been included with this distribution in * the LICENSE.txt file. */ package org.apache.avalon.phoenix.components.application.test; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.util.HashMap; import junit.framework.TestCase; import org.apache.avalon.excalibur.io.FileUtil; import org.apache.avalon.framework.configuration.Configuration; import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder; import org.apache.avalon.framework.configuration.ConfigurationException; import org.apache.avalon.framework.container.ContainerUtil; import org.apache.avalon.framework.logger.ConsoleLogger; import org.apache.avalon.framework.logger.Logger; import org.apache.avalon.phoenix.components.logger.DefaultLogManager; import org.apache.avalon.phoenix.components.application.DefaultApplication; import org.apache.avalon.phoenix.interfaces.LogManager; import org.apache.avalon.phoenix.interfaces.ApplicationContext; import org.apache.avalon.phoenix.metadata.BlockListenerMetaData; import org.apache.avalon.phoenix.metadata.BlockMetaData; import org.apache.avalon.phoenix.metadata.SarMetaData; import org.apache.avalon.phoenix.test.AbstractContainerTestCase; import org.apache.excalibur.threadcontext.ThreadContext; import org.apache.excalibur.threadcontext.impl.DefaultThreadContextPolicy; /** * An basic test case for the LogManager. * * @author <a href="mailto:peter at apache.org">Peter Donald</a> * @version $Revision: 1.1 $ $Date: 2002/10/01 06:19:50 $ */ public class ApplicationTestCase extends AbstractContainerTestCase { public ApplicationTestCase( final String name ) { super( name ); } public void testBasic() throws Exception { runApplicationTest( "assembly1.xml" ); } public void testComplex() throws Exception { runApplicationTest( "assembly2.xml" ); } private void runApplicationTest( final String config ) throws Exception { final SarMetaData sarMetaData = assembleSar( config ); runApplicationTest( sarMetaData ); } private void runApplicationTest( final SarMetaData sarMetaData ) throws Exception { final DefaultApplication application = new DefaultApplication(); application.enableLogging( new ConsoleLogger() ); final MockApplicationContext context = new MockApplicationContext( sarMetaData, new ConsoleLogger() ); application.setApplicationContext( context ); application.initialize(); application.start(); application.stop(); application.dispose(); } } 1.1 jakarta-avalon-phoenix/src/test/org/apache/avalon/phoenix/components/application/test/MockApplicationContext.java Index: MockApplicationContext.java =================================================================== /* * Copyright (C) The Apache Software Foundation. All rights reserved. * * This software is published under the terms of the Apache Software License * version 1.1, a copy of which has been included with this distribution in * the LICENSE.txt file. */ package org.apache.avalon.phoenix.components.application.test; import org.apache.avalon.phoenix.interfaces.ApplicationContext; import org.apache.avalon.phoenix.metadata.SarMetaData; import org.apache.avalon.framework.logger.Logger; import org.apache.avalon.framework.configuration.Configuration; import org.apache.avalon.framework.configuration.ConfigurationException; import org.apache.excalibur.threadcontext.ThreadContext; import org.apache.excalibur.threadcontext.impl.DefaultThreadContextPolicy; import java.util.HashMap; import java.io.InputStream; /** * * @author <a href="mailto:peter at apache.org">Peter Donald</a> * @version $Revision: 1.1 $ $Date: 2002/10/01 06:19:50 $ */ class MockApplicationContext implements ApplicationContext { private final ThreadContext m_threadContext = new ThreadContext( new DefaultThreadContextPolicy(), new HashMap() ); private final SarMetaData m_sarMetaData; private final Logger m_logger; public MockApplicationContext( final SarMetaData sarMetaData, final Logger logger ) { m_sarMetaData = sarMetaData; m_logger = logger; } public SarMetaData getMetaData() { return m_sarMetaData; } public ThreadContext getThreadContext() { return m_threadContext; } public void requestShutdown() { //ignore } public void exportObject( String name, Class[] interfaceClasses, Object object ) throws Exception { //ignore } public void unexportObject( String name ) throws Exception { //ignore } public ClassLoader getClassLoader() { return getClass().getClassLoader(); } public InputStream getResourceAsStream( final String name ) { return getClassLoader().getResourceAsStream( name ); } public Configuration getConfiguration( String component ) throws ConfigurationException { throw new ConfigurationException( "I can't do that dave!" ); } public Logger getLogger( String name ) { return m_logger; } } 1.1 jakarta-avalon-phoenix/src/test/org/apache/avalon/phoenix/components/application/test/assembly1.xml Index: assembly1.xml =================================================================== <?xml version="1.0"?> <!DOCTYPE assembly PUBLIC "-//PHOENIX/Assembly DTD Version 1.0//EN" "http://jakarta.apache.org/avalon/dtds/phoenix/assembly_1.0.dtd"> <assembly> <block class="org.apache.avalon.phoenix.test.data.Component1" name="c1"> <provide name="c2" role="org.apache.avalon.phoenix.test.data.Service2"/> </block> <block class="org.apache.avalon.phoenix.test.data.Component2" name="c2"> <proxy disable="true"/> </block> </assembly> 1.1 jakarta-avalon-phoenix/src/test/org/apache/avalon/phoenix/components/application/test/assembly2.xml Index: assembly2.xml =================================================================== <?xml version="1.0"?> <!DOCTYPE assembly PUBLIC "-//PHOENIX/Assembly DTD Version 1.0//EN" "http://jakarta.apache.org/avalon/dtds/phoenix/assembly_1.0.dtd"> <assembly> <block class="org.apache.avalon.phoenix.test.data.Component2" name="c2a"/> <block class="org.apache.avalon.phoenix.test.data.Component2" name="c2b"/> <block class="org.apache.avalon.phoenix.test.data.Component2" name="c2c"/> <block class="org.apache.avalon.phoenix.test.data.Component3" name="c3"> <provide name="c2a" role="org.apache.avalon.phoenix.test.data.Service2[]"/> <provide name="c2b" role="org.apache.avalon.phoenix.test.data.Service2[]"/> <provide name="c2c" role="org.apache.avalon.phoenix.test.data.Service2[]"/> </block> </assembly>
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>