@Test public void testUnknownException() throws Throwable { // create client service Service clientService = ProxyUtil.createClientProxy( cl, Service.class, false, jsonRpcClient, clientInputStream, clientOutputStream); jsonRpcServer.setErrorResolver(AnnotationsErrorResolver.INSTANCE); mockCtx.checking( new Expectations() { { one(serviceMock).unresolvedExceptionThrown(); will(throwException(new IllegalArgumentException("testing"))); one(serviceMock).undelcaredExceptionThrown(); will(throwException(new IllegalArgumentException("testing"))); } }); try { clientService.unresolvedExceptionThrown(); fail("Expecting exception"); } catch (Throwable t) { assertTrue(JsonRpcClientException.class.isInstance(t)); } try { clientService.undelcaredExceptionThrown(); fail("Expecting exception"); } catch (Throwable t) { assertTrue(JsonRpcClientException.class.isInstance(t)); } }
@Test public void testAllMethods() throws Throwable { // create client service Service clientService = ProxyUtil.createClientProxy( cl, Service.class, false, jsonRpcClient, clientInputStream, clientOutputStream); mockCtx.checking( new Expectations() { { one(serviceMock).noOp(); one(serviceMock).hello(); will(returnValue("world")); one(serviceMock).hello(with("uranus")); will(returnValue("uranus")); } }); // call it clientService.noOp(); assertEquals("world", clientService.hello()); assertEquals("uranus", clientService.hello("uranus")); // call non-rpc methods assertNotNull(clientService.toString()); assertTrue(clientService.equals(clientService)); assertFalse(clientService.equals(null)); clientService.hashCode(); }
@Test public void testException() throws Throwable { // create client service Service clientService = ProxyUtil.createClientProxy( cl, Service.class, false, jsonRpcClient, clientInputStream, clientOutputStream); mockCtx.checking( new Expectations() { { one(serviceMock).noOp(); will(throwException(new TestException("testing"))); one(serviceMock).hello(); will(throwException(new TestException(null))); one(serviceMock).hello(with("uranus")); will(throwException(new TestException2())); } }); try { clientService.noOp(); fail("Expecting exception"); } catch (Throwable t) { assertEquals("testing", t.getMessage()); assertTrue(TestException.class.isInstance(t)); } try { clientService.hello(); fail("Expecting exception"); } catch (Throwable t) { assertNull(t.getMessage()); assertTrue(TestException.class.isInstance(t)); } try { clientService.hello("uranus"); fail("Expecting exception"); } catch (Throwable t) { assertTrue(TestException2.class.isInstance(t)); } }