1 package test.crispy.impl.caucho; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 import java.util.Properties; 6 7 import junit.framework.TestCase; 8 import net.sf.crispy.InterceptorContext; 9 import net.sf.crispy.Property; 10 import net.sf.crispy.impl.MiniHttpServer; 11 import net.sf.crispy.impl.ServiceManager; 12 import net.sf.crispy.impl.StaticBurlapProxy; 13 import net.sf.crispy.impl.caucho.BurlapInvoker; 14 import net.sf.crispy.impl.caucho.BurlapServlet; 15 import net.sf.crispy.impl.caucho.BurlapServlet2; 16 import net.sf.crispy.impl.caucho.ConverterModifier; 17 import net.sf.crispy.impl.caucho.HessianServlet; 18 import net.sf.crispy.impl.http.HttpServlet; 19 import test.crispy.JUnitTestException; 20 import test.crispy.example.model.Kunde; 21 import test.crispy.example.service.Calculator; 22 import test.crispy.example.service.CalculatorImpl; 23 import test.crispy.example.service.Echo; 24 import test.crispy.example.service.EchoImpl; 25 import test.crispy.mock.MockServletConfig; 26 27 import com.caucho.burlap.io.BurlapInput; 28 import com.caucho.burlap.io.BurlapOutput; 29 30 public class CauchoTest extends TestCase { 31 32 public void testConverterModifier() throws Exception { 33 ConverterModifier lvConverterModifier = new ConverterModifier(); 34 InterceptorContext ic = new InterceptorContext(null, null, null); 35 InterceptorContext icAfter = lvConverterModifier.modifyBeforeInvocation(ic); 36 assertEquals(icAfter.getResult(), ic.getResult()); 37 assertEquals(icAfter.getArgs(), ic.getArgs()); 38 39 Map lvMap = new HashMap(); 40 lvMap.put("class", Kunde.class.getName()); 41 lvMap.put("name", "TEST-NAME"); 42 ic.setResult(lvMap); 43 icAfter = lvConverterModifier.modifyAfterInvocation(ic); 44 assertEquals(icAfter.getArgs(), ic.getArgs()); 45 assertTrue(icAfter.getResult() instanceof Kunde); 46 Kunde k = (Kunde) icAfter.getResult(); 47 assertEquals(k.getName(), "TEST-NAME"); 48 } 49 50 public void testConverterModifierThrowException() throws Exception { 51 ConverterModifier lvConverterModifier = new ConverterModifier(); 52 InterceptorContext ic = new InterceptorContext(null, null, null); 53 54 Map lvMap = new HashMap(); 55 lvMap.put("class", "no.valid.Class"); 56 lvMap.put("name", "TEST-NAME"); 57 ic.setResult(lvMap); 58 try { 59 lvConverterModifier.modifyAfterInvocation(ic); 60 fail("Exception must thrown!"); 61 } catch (Exception e) { 62 assertTrue(true); 63 } 64 } 65 66 public void testBurlapInvoker() throws Exception { 67 BurlapInvoker lvBurlapInvoker = new BurlapInvoker(new EchoImpl(), Echo.class); 68 lvBurlapInvoker.setWithConverter(true); 69 assertEquals(lvBurlapInvoker.getWithConverter(), true); 70 try { 71 lvBurlapInvoker.invoke(null, null); 72 fail("Exception with null parameter"); 73 } catch (Throwable e) { 74 assertTrue(true); 75 } 76 try { 77 lvBurlapInvoker.invoke(new BurlapInput(), new BurlapOutput()); 78 fail("Exception with null parameter"); 79 } catch (Throwable e) { 80 assertTrue(true); 81 } 82 lvBurlapInvoker.writeFault("Test-Fault", null, new BurlapOutput(System.out)); 83 } 84 85 public void testBurlapInvokerWithServlet() throws Exception { 86 MiniHttpServer server = new MiniHttpServer(8022); 87 server.setContext("/crispy"); 88 server.addServlet("/burlap2/*", BurlapServlet2.class.getName(), Echo.class.getName(), EchoImpl.class.getName()); 89 server.addServlet("/burlap2/*", BurlapServlet2.class.getName(), Calculator.class.getName(), CalculatorImpl.class.getName()); 90 server.start(); 91 92 Properties props = new Properties(); 93 props.put(Property.REMOTE_URL_AND_PORT, "http://localhost:8022/crispy/burlap2"); 94 props.put(Property.STATIC_PROXY_CLASS, StaticBurlapProxy.class.getName()); 95 ServiceManager lvManager = new ServiceManager(props); 96 Echo lvEcho = (Echo) lvManager.createService(Echo.class); 97 assertEquals(lvEcho.echo("ECHO"), "ECHO"); 98 99 boolean throwException = false; 100 try { 101 lvEcho.throwException("A Test-Excption."); 102 } catch (JUnitTestException e) { 103 throwException = true; 104 } 105 assertTrue("No Exception thrown: " + throwException, throwException); 106 107 Calculator lvCalculator = (Calculator) lvManager.createService(Calculator.class); 108 assertEquals(11, lvCalculator.add(5, 6)); 109 110 server.stop(); 111 } 112 113 public void testBurlapServlet() throws Exception { 114 BurlapServlet lvBurlapServlet = new BurlapServlet(); 115 MockServletConfig config = new MockServletConfig("BurlapServlet"); 116 config.addInitParameter("test.service", "not.valid.Class"); 117 try { 118 lvBurlapServlet.init(config); 119 fail("Exception with null parameter"); 120 } catch (Exception e) { 121 assertTrue(true); 122 } 123 } 124 125 public void testBurlapServlet2() throws Exception { 126 BurlapServlet2 lvBurlapServlet = new BurlapServlet2(); 127 MockServletConfig config = new MockServletConfig("BurlapServlet2"); 128 config.addInitParameter("test.service", "not.valid.Class"); 129 try { 130 lvBurlapServlet.init(config); 131 fail("Exception with null parameter"); 132 } catch (Exception e) { 133 assertTrue(true); 134 } 135 } 136 137 public void testHessianServlet() throws Exception { 138 HessianServlet lvHessianServlet = new HessianServlet(); 139 MockServletConfig config = new MockServletConfig("HessianServlet"); 140 config.addInitParameter("test.service", "not.valid.Class"); 141 try { 142 lvHessianServlet.init(config); 143 fail("Exception with null parameter"); 144 } catch (Exception e) { 145 assertTrue(true); 146 } 147 } 148 149 public void testHttpServlet() throws Exception { 150 HttpServlet lvHttpServlet = new HttpServlet(); 151 MockServletConfig config = new MockServletConfig("HttpServlet"); 152 config.addInitParameter("test.service", "not.valid.Class"); 153 try { 154 lvHttpServlet.init(config); 155 fail("Exception with null parameter"); 156 } catch (Exception e) { 157 assertTrue(true); 158 } 159 } 160 161 }