@Test public void testHandleRequest__SystemException() throws Exception { Request request = createStrictMock(Request.class); ResourceInstance resource = createStrictMock(ResourceInstance.class); Query query = createMock(Query.class); Predicate predicate = createMock(Predicate.class); Renderer renderer = new DefaultRenderer(); expect(request.getResource()).andReturn(resource); expect(resource.getQuery()).andReturn(query); expect(request.getPageRequest()).andReturn(null); expect(request.getSortRequest()).andReturn(null); expect(request.getRenderer()).andReturn(renderer); expect(request.getFields()).andReturn(Collections.<String, TemporalInfo>emptyMap()); expect(request.getQueryPredicate()).andReturn(predicate); query.setUserPredicate(predicate); query.setPageRequest(null); query.setSortRequest(null); query.setRenderer(renderer); SystemException systemException = new SystemException("testMsg", new RuntimeException()); expect(query.execute()).andThrow(systemException); replay(request, resource, query, predicate); // test ReadHandler handler = new ReadHandler(); Result result = handler.handleRequest(request); assertEquals(ResultStatus.STATUS.SERVER_ERROR, result.getStatus().getStatus()); assertEquals(systemException.toString(), result.getStatus().getMessage()); verify(request, resource, query, predicate); }