Skip to content

Commit

Permalink
RESTWS-663 - Fix SwaggerSpecificationCreator#hasSearchHandler(resName) (
Browse files Browse the repository at this point in the history
#300)

* Fix invalid logic in SwaggerSpecificationCreator#hasSearchHandler(resourceName)
* Add test case: SwaggerSpecificationCreatorTest#hasSearchHandler()
  • Loading branch information
gayanW authored and dkayiwa committed Sep 15, 2017
1 parent d47bf26 commit 4563334
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -590,7 +590,7 @@ private void addSearchOperations(DelegatingResourceHandler<?> resourceHandler, S
return;
}
boolean hasDoSearch = testOperationImplemented(OperationEnum.getWithDoSearch, resourceHandler);
boolean hasSearchHandler = hasSearchHandler(resourceName);
boolean hasSearchHandler = hasSearchHandler(resourceName, resourceParentName);
boolean wasNew = false;

if (hasSearchHandler || hasDoSearch) {
Expand Down Expand Up @@ -1169,9 +1169,16 @@ private String getResourceUrl(String baseUrl, String resourceName) {
return baseUrl + "/v1/" + resourceName;
}

private boolean hasSearchHandler(String resourceName) {
for (SearchHandlerDoc doc : searchHandlerDocs) {
if (doc.getResourceURL().contains(resourceName)) {
public boolean hasSearchHandler(String resourceName, String resourceParentName) {
if (resourceParentName != null) {
resourceName = RestConstants.VERSION_1 + "/" + resourceParentName + "/" + resourceName;
} else {
resourceName = RestConstants.VERSION_1 + "/" + resourceName;
}

List<SearchHandler> searchHandlers = Context.getService(RestService.class).getAllSearchHandlers();
for (SearchHandler searchHandler : searchHandlers) {
if (searchHandler.getSearchConfig().getSupportedResource().equals(resourceName)) {
return true;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,9 @@
import java.util.List;
import java.util.Map;

import static junit.framework.TestCase.assertFalse;
import static junit.framework.TestCase.assertNotNull;
import static junit.framework.TestCase.assertTrue;

public class SwaggerSpecificationCreatorTest extends BaseModuleWebContextSensitiveTest {

Expand All @@ -54,6 +56,17 @@ public void mainTest() {
assertNotNull(str);
}

@Test
public void hasSearchHandler() {
String baseUrl = "host/openmrs/ws/rest";
SwaggerSpecificationCreator creator = new SwaggerSpecificationCreator(baseUrl);

assertTrue(creator.hasSearchHandler("attribute", "location"));

assertFalse(creator.hasSearchHandler("workflow", null));
assertFalse(creator.hasSearchHandler("description", "concept"));
}

@Test
public void modelResolveTest() {
final ModelResolver modelResolver = new ModelResolver(new ObjectMapper());
Expand Down

0 comments on commit 4563334

Please sign in to comment.