@Test public void testHandleRequest__InvalidField() { Request request = createNiceMock(Request.class); ResourceInstance resource = createNiceMock(ResourceInstance.class); Query query = createStrictMock(Query.class); Map<String, TemporalInfo> mapPartialResponseFields = new HashMap<String, TemporalInfo>(); mapPartialResponseFields.put("foo/bar", null); Renderer renderer = new DefaultRenderer(); expect(request.getResource()).andReturn(resource); expect(request.getFields()).andReturn(mapPartialResponseFields); expect(request.getRenderer()).andReturn(renderer); expect(resource.getQuery()).andReturn(query); query.setPageRequest(null); query.setSortRequest(null); query.setRenderer(renderer); query.addProperty("foo/bar", null); expectLastCall().andThrow(new IllegalArgumentException("testMsg")); replay(request, resource, query); ReadHandler handler = new ReadHandler(); Result result = handler.handleRequest(request); assertEquals(ResultStatus.STATUS.BAD_REQUEST, result.getStatus().getStatus()); assertEquals("testMsg", result.getStatus().getMessage()); verify(request, resource, query); }
@Test public void testHandleRequest__OK() throws Exception { Request request = createStrictMock(Request.class); ResourceInstance resource = createStrictMock(ResourceInstance.class); Query query = createMock(Query.class); Predicate predicate = createMock(Predicate.class); Result result = createStrictMock(Result.class); Renderer renderer = new DefaultRenderer(); Capture<ResultStatus> resultStatusCapture = new Capture<ResultStatus>(); Map<String, TemporalInfo> mapPartialResponseFields = new HashMap<String, TemporalInfo>(); mapPartialResponseFields.put("foo", null); mapPartialResponseFields.put("bar/c", null); mapPartialResponseFields.put("bar/d/e", null); mapPartialResponseFields.put("category/", null); // expectations 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(mapPartialResponseFields); query.addProperty("foo", null); query.addProperty("bar/c", null); query.addProperty("bar/d/e", null); query.addProperty("category/", null); expect(request.getQueryPredicate()).andReturn(predicate); query.setUserPredicate(predicate); query.setPageRequest(null); query.setSortRequest(null); query.setRenderer(renderer); expect(query.execute()).andReturn(result); result.setResultStatus(capture(resultStatusCapture)); replay(request, resource, query, predicate, result); // test ReadHandler handler = new ReadHandler(); assertSame(result, handler.handleRequest(request)); assertEquals(ResultStatus.STATUS.OK, resultStatusCapture.getValue().getStatus()); verify(request, resource, query, predicate, result); }