package org.oddjob.jmx.server; import junit.framework.TestCase; import org.oddjob.Oddjob; import org.oddjob.OddjobLookup; import org.oddjob.OddjobSessionFactory; import org.oddjob.arooa.ArooaParseException; import org.oddjob.arooa.ArooaSession; import org.oddjob.arooa.convert.ArooaConversionException; import org.oddjob.arooa.life.ArooaSessionAware; import org.oddjob.arooa.xml.XMLConfiguration; public class ResourceFactoryProviderTest extends TestCase { public void testProvideFactories() throws ArooaParseException { ArooaSession session = new OddjobSessionFactory().createSession(); ResourceFactoryProvider test = new ResourceFactoryProvider( session); ServerInterfaceHandlerFactory<?, ?>[] handlerFactories = test.getHandlerFactories(); assertEquals(11, handlerFactories.length); } public static class HandlerCounter implements Runnable, ArooaSessionAware { int count; ArooaSession session; public void setArooaSession(ArooaSession session) { this.session = session; } public void run() { ResourceFactoryProvider test = new ResourceFactoryProvider( session); ServerInterfaceHandlerFactory<?, ?>[] handlerFactories = test.getHandlerFactories(); count = handlerFactories.length; } public int getCount() { return count; } } public void testFactoriesInOddjob() throws ArooaParseException, ArooaConversionException { String xml = "<oddjob>" + " <job>" + " <bean id='x' class='" + HandlerCounter.class.getName() + "'/>" + " </job>" + "</oddjob>"; Oddjob oddjob = new Oddjob(); oddjob.setConfiguration(new XMLConfiguration("XML", xml)); oddjob.run(); int count = new OddjobLookup(oddjob).lookup("x.count", int.class); assertEquals(11, count); } }