Skip to content

Commit

Permalink
search fix now includes mock url.
Browse files Browse the repository at this point in the history
  • Loading branch information
clafonta committed Nov 4, 2017
1 parent 07e6e5d commit 7f62c5b
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 38 deletions.
4 changes: 2 additions & 2 deletions build.num
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
#Build Number for ANT. Do not edit!
#Tue Oct 17 23:26:37 PDT 2017
build.number=96
#Sun Oct 29 16:00:44 PDT 2017
build.number=97
43 changes: 22 additions & 21 deletions src/java/com/mockey/SearchResultBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,27 +42,33 @@
*/
public class SearchResultBuilder {

private String baseAppContextPath = null;

/**
* Basic contructor
*
* @param _baseAppContextPath
* the application context path, which is needed to combine with
* the mock URL for proper matching, since each service only
* contains a portion of the full mock url (missing scheme,
* hostname, port, etc.)
*/
public SearchResultBuilder() {

public SearchResultBuilder(String _baseAppContextPath) {
this.baseAppContextPath = _baseAppContextPath;
}

/**
*
* @param term
* @param store
*/
public List<SearchResult> buildSearchResults(String term,
IMockeyStorage store) {
public List<SearchResult> buildSearchResults(String term, IMockeyStorage store) {
List<SearchResult> searchResultList = new ArrayList<SearchResult>();

if (term != null && term.trim().length() > 0) {
term = term.trim();

// ******************************
// SERVICE PLAN LIST
// SERVICE PLAN LIST
// ******************************
for (ServicePlan servicePlan : store.getServicePlans()) {
SearchResult sr = buildSearchResult(term, servicePlan.getName() + " " + servicePlan.getTag());
Expand All @@ -73,15 +79,14 @@ public List<SearchResult> buildSearchResults(String term,
searchResultList.add(sr);
}
}

// ******************************
// SERVICE LIST
// SERVICE LIST
// ******************************
for (Service service : store.getServices()) {

boolean serviceAdded = false;
SearchResult sr = buildSearchResult(term,
service.getServiceName() + " " +service.getTag() + " ");
SearchResult sr = buildSearchResult(term, service.getServiceName() + " " + service.getTag() + " ");
if (sr != null) {
sr.setType(SearchResultType.SERVICE);
sr.setServiceId("" + service.getId());
Expand All @@ -92,8 +97,7 @@ public List<SearchResult> buildSearchResults(String term,
if (!serviceAdded) {
// No match; lets check RealServiceUrls
for (Url url : service.getRealServiceUrls()) {
SearchResult subresult = buildSearchResult(term,
url.toString());
SearchResult subresult = buildSearchResult(term, url.toString());
if (subresult != null) {
subresult.setType(SearchResultType.SERVICE);
subresult.setServiceId("" + service.getId());
Expand All @@ -105,9 +109,9 @@ public List<SearchResult> buildSearchResults(String term,
}

if (!serviceAdded) {
// No match; lets check RealServiceUrls
// No match; lets check mock urls
String mockurl = service.getUrl();
SearchResult subresult = buildSearchResult(term, mockurl);
SearchResult subresult = buildSearchResult(term, (this.baseAppContextPath + mockurl));
if (subresult != null) {
subresult.setType(SearchResultType.SERVICE);
subresult.setServiceId("" + service.getId());
Expand All @@ -126,19 +130,16 @@ public List<SearchResult> buildSearchResults(String term,
for (Scenario scenario : service.getScenarios()) {
// Append tags, name, and response...
// Why not? It's a hack to jumble all things together
SearchResult subresult = buildSearchResult(
term,
scenario.getResponseMessage() + " "
+ scenario.getScenarioName() + " "
+ scenario.getTag());
SearchResult subresult = buildSearchResult(term,
scenario.getResponseMessage() + " " + scenario.getScenarioName() + " " + scenario.getTag());

if (subresult != null) {
subresult.setType(SearchResultType.SERVICE_SCENARIO);
subresult.setServiceId("" + service.getId());
subresult.setScenarioId("" + scenario.getId());
subresult.setScenarioName(scenario.getScenarioName());
searchResultList.add(subresult);
}
}
}

}
Expand Down
19 changes: 12 additions & 7 deletions src/java/com/mockey/ui/SearchServlet.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@

import com.mockey.SearchResultBuilder;
import com.mockey.model.SearchResult;
import com.mockey.model.Url;
import com.mockey.storage.IMockeyStorage;
import com.mockey.storage.StorageRegistry;

Expand Down Expand Up @@ -68,21 +69,25 @@ public class SearchServlet extends HttpServlet {
* @throws IOException
* basic
*/
public void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

SearchResultBuilder searchResultBuilder = new SearchResultBuilder();
// Why do we need App context?
String appContextPath = Url.getAbsoluteURL(req, "/service");
SearchResultBuilder searchResultBuilder = new SearchResultBuilder(appContextPath + "/");

String term = req.getParameter("term");
List<SearchResult> searchResultList = searchResultBuilder
.buildSearchResults(term, store);
//
List<SearchResult> searchResultList = searchResultBuilder.buildSearchResults(term, store);

req.setAttribute("results", searchResultList);
req.setAttribute("term", term);
RequestDispatcher dispatch = req
.getRequestDispatcher("/search_result.jsp");
RequestDispatcher dispatch = req.getRequestDispatcher("/search_result.jsp");
dispatch.forward(req, resp);

}

public static void main(String[] args){

}

}
16 changes: 8 additions & 8 deletions src/test/com/mockey/SearchResultBuilderTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ public void validateSearchResultByName() {
store.saveOrUpdateService(a);

String term = "scenario";
SearchResultBuilder resultBuilder = new SearchResultBuilder();
SearchResultBuilder resultBuilder = new SearchResultBuilder("");
List<SearchResult> resultList = resultBuilder.buildSearchResults(term,
store);

Expand Down Expand Up @@ -93,15 +93,15 @@ public void validateSearchResultScenarioContent() {
store.saveOrUpdateService(a);

String term = "cats";
SearchResultBuilder resultBuilder = new SearchResultBuilder();
SearchResultBuilder resultBuilder = new SearchResultBuilder("");
List<SearchResult> resultList = resultBuilder.buildSearchResults(term,
store);

assert (resultList.size() == 0) : "Length should be 0 but was "
+ resultList.size();

term = " lorem ";
resultBuilder = new SearchResultBuilder();
resultBuilder = new SearchResultBuilder("");
resultList = resultBuilder.buildSearchResults(term, store);
assert (resultList.size() == 1) : "Length should be: 1 " + " but was '"
+ resultList.size() + "'";
Expand All @@ -115,7 +115,7 @@ public void validateSearchResultScenarioContent() {
store.saveOrUpdateService(a);

term = " lorem ";
resultBuilder = new SearchResultBuilder();
resultBuilder = new SearchResultBuilder("");
resultList = resultBuilder.buildSearchResults(term, store);
// We should have TWO scenarios with 'lorem' in content/
assert (resultList.size() == 2) : "Length should be: 2 " + " but was '"
Expand All @@ -136,15 +136,15 @@ public void validateSearchResultByServiceTag() {
store.saveOrUpdateService(a);

String term = "cats";
SearchResultBuilder resultBuilder = new SearchResultBuilder();
SearchResultBuilder resultBuilder = new SearchResultBuilder("");
List<SearchResult> resultList = resultBuilder.buildSearchResults(term,
store);

assert (resultList.size() == 0) : "Length should be 0 but was "
+ resultList.size();

term = "tagC";
resultBuilder = new SearchResultBuilder();
resultBuilder = new SearchResultBuilder("");
resultList = resultBuilder.buildSearchResults(term, store);
assert (resultList.size() == 1) : "Length should be 1 but was "
+ resultList.size();
Expand Down Expand Up @@ -174,15 +174,15 @@ public void validateSearchResultByServicePlanTag() {
store.saveOrUpdateServicePlan(servicePlan);

String term = "cats";
SearchResultBuilder resultBuilder = new SearchResultBuilder();
SearchResultBuilder resultBuilder = new SearchResultBuilder("");
List<SearchResult> resultList = resultBuilder.buildSearchResults(term,
store);

assert (resultList.size() == 0) : "Length should be 0 but was "
+ resultList.size();

term = "service_plan_tag_123";
resultBuilder = new SearchResultBuilder();
resultBuilder = new SearchResultBuilder("");
resultList = resultBuilder.buildSearchResults(term, store);
assert (resultList.size() == 1) : "Length should be 1 but was "
+ resultList.size();
Expand Down

0 comments on commit 7f62c5b

Please sign in to comment.