/** * Assert that a search with the given parameters returns an expected number of results. * * @param userName The user name to search for. * @param roles The roles to search for. * @param expectedResultCount The expected result count for the given search parameters. * @throws ResponseException */ @SuppressWarnings("unchecked") private void assertSearch(final String userName, final Collection<String> roles, final int expectedResultCount) throws ResponseException { // input final MockHttpServletRequest request = new MockHttpServletRequest(); request.addParameter("q", userName); if (roles != null) { final String rolesAsCommaSeparatedString = StringUtils.join(roles, ","); request.addParameter(UserResource1_8.PARAMETER_ROLES, rolesAsCommaSeparatedString); } final RequestContext context = RestUtil.getRequestContext(request, new MockHttpServletResponse()); // search final SimpleObject simple = getResource().search(context); final List<SimpleObject> results = (List<SimpleObject>) simple.get("results"); // verify final String errorMessage = "Number of results does not match for: userName=" + userName + ", roles=" + roles + ", Results=" + results; Assert.assertEquals(errorMessage, expectedResultCount, results.size()); }
/** * @see {@link https://issues.openmrs.org/browse/RESTWS-490} * @throws Exception */ @SuppressWarnings("unchecked") @Test public void testCorrectResourceForUser() throws Exception { // prepare final MockHttpServletRequest request = new MockHttpServletRequest(); request.addParameter("q", ""); // query for all final RequestContext context = RestUtil.getRequestContext(request, new MockHttpServletResponse()); // search final SimpleObject simple = getResource().search(context); final List<SimpleObject> results = (List<SimpleObject>) simple.get("results"); // verify Assert.assertFalse("A non-empty list is expected.", results.isEmpty()); for (SimpleObject result : results) { final String selfLink = findSelfLink(result); Assert.assertTrue("Resource should be user, but is " + selfLink, selfLink.contains("/user/")); } }