package test.wsdd; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; import org.apache.axis.Handler; import org.apache.axis.configuration.XMLStringProvider; import org.apache.axis.deployment.wsdd.WSDDConstants; import org.apache.axis.server.AxisServer; public class TestScopeOption extends TestCase { static final String HANDLER_NAME = "logger"; // Two-part WSDD, with a space for scope option in the middle static final String doc1 = "\n" + " \n" + ""; public TestScopeOption (String name) { super(name); } public static Test suite() { return new TestSuite(TestScopeOption.class); } protected void setup() { } /** * Initialize an engine with a single handler with per-access scope. * Then get the handler from the engine twice, and confirm that we get * two different objects. * */ public void testPerAccessScope() throws Exception { String doc = doc1 + "per-access" + doc2; XMLStringProvider provider = new XMLStringProvider(doc); AxisServer server = new AxisServer(provider); Handler h1 = server.getHandler(HANDLER_NAME); assertNotNull("Couldn't get first logger handler from engine!", h1); Handler h2 = server.getHandler(HANDLER_NAME); assertNotNull("Couldn't get second logger handler from engine!", h2); assertTrue("Per-access Handlers were identical!", (h1 != h2)); } /** * Initialize an engine with a single handler of singleton scope. * Then get the handler from the engine twice, and confirm that we * get the same object both times. */ public void testSingletonScope() throws Exception { String doc = doc1 + "singleton" + doc2; XMLStringProvider provider = new XMLStringProvider(doc); AxisServer server = new AxisServer(provider); Handler h1 = server.getHandler(HANDLER_NAME); assertNotNull("Couldn't get first logger handler from engine!", h1); Handler h2 = server.getHandler(HANDLER_NAME); assertNotNull("Couldn't get second logger handler from engine!", h2); assertTrue("Singleton Handlers were different!", (h1 == h2)); } public static void main(String[] args) throws Exception { TestScopeOption tester = new TestScopeOption("foo"); tester.testPerAccessScope(); } }