1 package test.crispy.server; 2 3 import junit.framework.TestCase; 4 import net.sf.crispy.ExceptionWrapper; 5 import net.sf.crispy.InterceptorHandler; 6 import net.sf.crispy.interceptor.StopWatchInterceptor; 7 import net.sf.crispy.server.ServiceEndpoint; 8 import net.sf.crispy.server.ServiceEndpointImpl; 9 import test.crispy.JUnitTestException; 10 import test.crispy.example.SubServiceEndpoint; 11 import test.crispy.example.interceptor.WaitInterceptor; 12 import test.crispy.example.service.EchoImpl; 13 14 public class ServiceEndpointTest extends TestCase { 15 16 public void testDoInvoke() throws Exception { 17 ServiceEndpoint lvEndpoint = new ServiceEndpointImpl(); 18 Object lvResult = lvEndpoint.doInvoke(new EchoImpl(), EchoImpl.class.getMethod("ping", null), null, null); 19 assertEquals(EchoImpl.PING_STRING, lvResult); 20 } 21 22 public void testDoInvoke_2() throws Exception { 23 ServiceEndpoint lvEndpoint = new ServiceEndpointImpl(); 24 Object lvResult = lvEndpoint.doInvoke(new EchoImpl(), 25 EchoImpl.class.getMethod("echo", new Class[] {String.class}), 26 new Object [] {"My Echo"}, null); 27 assertEquals("My Echo", lvResult); 28 } 29 30 31 public void testInterceptorHandler() throws Exception { 32 ServiceEndpoint lvEndpoint = new ServiceEndpointImpl(); 33 assertNotNull(lvEndpoint.createNewInterceptorHandlerInstance()); 34 } 35 36 public void testInterceptorHandler_2() throws Exception { 37 SubServiceEndpoint lvEndpoint = new SubServiceEndpoint(); 38 assertNotNull(lvEndpoint.createNewInterceptorHandlerInstance()); 39 40 StopWatchInterceptor lvStopWatchInterceptor = lvEndpoint.getStopWatchInterceptor(); 41 assertTrue(lvStopWatchInterceptor.getStopTimeInvokeMethod() < 0); 42 43 lvEndpoint.doInvoke(new EchoImpl(), EchoImpl.class.getMethod("echo", new Class[] {String.class}), new Object [] {"My Echo"}, null); 44 assertTrue(lvStopWatchInterceptor.getStopTimeInvokeMethod() > 20); 45 assertEquals(2, lvEndpoint.createNewInterceptorHandlerInstance().getInterceptorSize()); 46 } 47 48 public void testInterceptorHandler_3() throws Exception { 49 ServiceEndpoint lvEndpoint = new ServiceEndpointImpl(); 50 assertNotNull(lvEndpoint.createNewInterceptorHandlerInstance()); 51 52 StopWatchInterceptor lvStopWatch = new StopWatchInterceptor(); 53 InterceptorHandler lvHandler = new InterceptorHandler(); 54 lvHandler.addInterceptor(new WaitInterceptor()); 55 lvHandler.addInterceptor(lvStopWatch); 56 57 Object lvResult = lvEndpoint.doInvoke(new EchoImpl(), EchoImpl.class.getMethod("ping", null), null, lvHandler); 58 assertEquals(EchoImpl.PING_STRING, lvResult); 59 assertTrue(lvStopWatch.getStopTimeInvokeMethod() > 20); 60 } 61 62 63 public void testException() throws Exception { 64 ServiceEndpoint lvEndpoint = new ServiceEndpointImpl(); 65 66 String lvMessage = "Test-Message"; 67 Object lvResult = lvEndpoint.doInvoke(new EchoImpl(), EchoImpl.class.getMethod("throwException", new Class [] { String.class } ), new String[] {lvMessage}, null); 68 assertNotNull(lvResult); 69 assertTrue(lvResult instanceof ExceptionWrapper); 70 ExceptionWrapper lvExceptionWrapper = (ExceptionWrapper) lvResult; 71 assertEquals(JUnitTestException.class.getName(), lvExceptionWrapper.getExceptionClassName()); 72 assertEquals("Test Exception: " + lvMessage, lvExceptionWrapper.getMessage()); 73 74 assertTrue(lvExceptionWrapper.getStackTraceByteArray().length > 0); 75 assertTrue(lvExceptionWrapper.getStackTraceElementWrapperList().size() > 0); 76 } 77 }