SubResourceSearchHandler searchHandler = (SubResourceSearchHandler) restService.getSearchHandler( buildResourceName(resource) + "/" + subResource, request.getParameterMap()); if (searchHandler != null) {
SearchHandler searchHandler = restService.getSearchHandler(buildResourceName(resource), request.getParameterMap()); if (searchHandler != null) { return searchHandler.search(context).toSimpleObject(conv);
/** * @verifies return search handler matching id set in given parameters * @see RestServiceImpl#getSearchHandler(String, Map) */ @Test public void getSearchHandler_shouldReturnSearchHandlerMatchingIdSetInGivenParameters() throws Exception { SearchHandler searchHandler = mock(SearchHandler.class); SearchConfig searchConfig = new SearchConfig("conceptByMapping", "v1/concept", "1.8.*", new SearchQuery.Builder( "Fuzzy search").withRequiredParameters("q").build()); when(searchHandler.getSearchConfig()).thenReturn(searchConfig); when(restHelperService.getRegisteredSearchHandlers()).thenReturn(asList(searchHandler)); setCurrentOpenmrsVersion("1.8.10"); Map<String, String[]> parameters = new HashMap<String, String[]>(); parameters.put("s", new String[] { "conceptByMapping" }); assertThat(restService.getSearchHandler("v1/concept", parameters), is(searchHandler)); }
/** * @verifies return null if parameters do not contain a search handler id and no other non * special request parameters * @see RestServiceImpl#getSearchHandler(String, Map) */ @Test public void getSearchHandler_shouldReturnNullIfParametersDoNotContainASearchHandlerIdAndNoOtherNonSpecialRequestParameters() throws Exception { SearchHandler searchHandler1 = mock(SearchHandler.class); SearchConfig searchConfig = new SearchConfig("default", "v1/concept", "1.8.*", new SearchQuery.Builder("description").withOptionalParameters("code").build()); when(searchHandler1.getSearchConfig()).thenReturn(searchConfig); setCurrentOpenmrsVersion("1.8.10"); when(restHelperService.getRegisteredSearchHandlers()).thenReturn(asList(searchHandler1)); RestUtil.disableContext(); //to avoid a Context call Map<String, String[]> parameters = new HashMap<String, String[]>(); assertThat(restService.getSearchHandler("v1/concept", parameters), is(nullValue())); }
/** * @verifies return null if no search handler is found for given resource name * @see RestServiceImpl#getSearchHandler(String, Map) */ @Test public void getSearchHandler_shouldReturnNullIfNoSearchHandlerIsFoundForGivenResourceName() throws Exception { SearchHandler searchHandler1 = mock(SearchHandler.class); SearchConfig searchConfig1 = new SearchConfig("default", "v1/concept", "1.8.*", new SearchQuery.Builder( "description").withRequiredParameters("source").withOptionalParameters("code").build()); when(searchHandler1.getSearchConfig()).thenReturn(searchConfig1); setCurrentOpenmrsVersion("1.8.10"); when(restHelperService.getRegisteredSearchHandlers()).thenReturn(asList(searchHandler1)); RestUtil.disableContext(); //to avoid a Context call Map<String, String[]> parameters = new HashMap<String, String[]>(); parameters.put("source", new String[] { "some source" }); assertThat(restService.getSearchHandler("v1/order", parameters), is(nullValue())); }
/** * @verifies return null if no search handler is found for current openmrs version * @see RestServiceImpl#getSearchHandler(String, Map) */ @Test public void getSearchHandler_shouldReturnNullIfNoSearchHandlerIsFoundForCurrentOpenmrsVersion() throws Exception { SearchHandler searchHandler1 = mock(SearchHandler.class); SearchConfig searchConfig1 = new SearchConfig("default", "v1/concept", "1.8.*", new SearchQuery.Builder( "description").withRequiredParameters("source").withOptionalParameters("code").build()); when(searchHandler1.getSearchConfig()).thenReturn(searchConfig1); setCurrentOpenmrsVersion("1.12.0"); when(restHelperService.getRegisteredSearchHandlers()).thenReturn(asList(searchHandler1)); RestUtil.disableContext(); //to avoid a Context call Map<String, String[]> parameters = new HashMap<String, String[]>(); parameters.put("source", new String[] { "some source" }); assertThat(restService.getSearchHandler("v1/concept", parameters), is(nullValue())); }
/** * @verifies fail if parameters contain a search handler id which cannot be found * @see RestServiceImpl#getSearchHandler(String, Map) */ @Test public void getSearchHandler_shouldFailIfParametersContainASearchHandlerIdWhichCannotBeFound() throws Exception { SearchHandler searchHandler = mock(SearchHandler.class); SearchConfig searchConfig = new SearchConfig("default", "v1/concept", "1.8.*", new SearchQuery.Builder( "Fuzzy search").withRequiredParameters("q").build()); when(searchHandler.getSearchConfig()).thenReturn(searchConfig); when(restHelperService.getRegisteredSearchHandlers()).thenReturn(asList(searchHandler)); setCurrentOpenmrsVersion("1.8.10"); String searchHandlerId = "conceptByMapping"; Map<String, String[]> parameters = new HashMap<String, String[]>(); parameters.put("s", new String[] { searchHandlerId }); expectedException.expect(InvalidSearchException.class); expectedException.expectMessage("The search with id '" + searchHandlerId + "' for '" + searchConfig.getSupportedResource() + "' resource is not recognized"); restService.getSearchHandler("v1/concept", parameters); }
parameters.put("code", new String[] { "some code" }); assertThat(restService.getSearchHandler("v1/concept", parameters), is(searchHandler1));
parameters.put("code", new String[] { "some name" }); assertThat(restService.getSearchHandler("v1/concept", parameters), is(nullValue()));
parameters.put("date", new String[] { "some date" }); assertThat(restService.getSearchHandler("v1/concept", parameters), is(nullValue()));
restService.getSearchHandler("v1/concept", parameters);