1 package org.kuali.student.common.search;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import org.kuali.student.common.exceptions.DoesNotExistException;
7 import org.kuali.student.common.exceptions.InvalidParameterException;
8 import org.kuali.student.common.exceptions.MissingParameterException;
9 import org.kuali.student.common.exceptions.OperationFailedException;
10 import org.kuali.student.common.search.dto.SearchCriteriaTypeInfo;
11 import org.kuali.student.common.search.dto.SearchRequest;
12 import org.kuali.student.common.search.dto.SearchResult;
13 import org.kuali.student.common.search.dto.SearchResultCell;
14 import org.kuali.student.common.search.dto.SearchResultRow;
15 import org.kuali.student.common.search.dto.SearchResultTypeInfo;
16 import org.kuali.student.common.search.dto.SearchTypeInfo;
17 import org.kuali.student.common.search.service.SearchService;
18 import org.kuali.student.common.search.service.impl.CrossSearchManager;
19 import org.kuali.student.common.search.service.impl.SearchDispatcherImpl;
20 import org.kuali.student.common.search.service.impl.SearchManagerImpl;
21
22 public class MockSearch implements SearchService {
23 SearchManagerImpl sm;
24 public MockSearch(){
25 sm = new SearchManagerImpl("classpath:test-cross-search.xml");
26 CrossSearchManager csm = new CrossSearchManager();
27 sm.setCrossSearchManager(csm);
28 SearchDispatcherImpl sd = new SearchDispatcherImpl();
29 List<SearchService> services = new ArrayList<SearchService>();
30 services.add(this);
31 sd.setServices(services);
32 csm.setSearchDispatcher(sd);
33 }
34 @Override
35 public List<SearchTypeInfo> getSearchTypes()
36 throws OperationFailedException {
37 return sm.getSearchTypes();
38 }
39
40 @Override
41 public SearchTypeInfo getSearchType(String searchTypeKey)
42 throws DoesNotExistException, InvalidParameterException,
43 MissingParameterException, OperationFailedException {
44 return sm.getSearchType(searchTypeKey);
45 }
46
47 @Override
48 public List<SearchTypeInfo> getSearchTypesByResult(
49 String searchResultTypeKey) throws DoesNotExistException,
50 InvalidParameterException, MissingParameterException,
51 OperationFailedException {
52 return sm.getSearchTypesByResult(searchResultTypeKey);
53 }
54
55 @Override
56 public List<SearchTypeInfo> getSearchTypesByCriteria(
57 String searchCriteriaTypeKey) throws DoesNotExistException,
58 InvalidParameterException, MissingParameterException,
59 OperationFailedException {
60 return sm.getSearchTypesByCriteria(searchCriteriaTypeKey);
61 }
62
63 @Override
64 public List<SearchResultTypeInfo> getSearchResultTypes()
65 throws OperationFailedException {
66 return sm.getSearchResultTypes();
67 }
68
69 @Override
70 public SearchResultTypeInfo getSearchResultType(String searchResultTypeKey)
71 throws DoesNotExistException, InvalidParameterException,
72 MissingParameterException, OperationFailedException {
73 return sm.getSearchResultType(searchResultTypeKey);
74 }
75
76 @Override
77 public List<SearchCriteriaTypeInfo> getSearchCriteriaTypes()
78 throws OperationFailedException {
79 return sm.getSearchCriteriaTypes();
80 }
81
82 @Override
83 public SearchCriteriaTypeInfo getSearchCriteriaType(
84 String searchCriteriaTypeKey) throws DoesNotExistException,
85 InvalidParameterException, MissingParameterException,
86 OperationFailedException {
87 return sm.getSearchCriteriaType(searchCriteriaTypeKey);
88 }
89
90 @Override
91 public SearchResult search(SearchRequest searchRequest)
92 throws MissingParameterException {
93 if("test.search1".equals(searchRequest.getSearchKey())){
94 SearchResult searchResult = new SearchResult();
95 SearchResultRow row = new SearchResultRow();
96 SearchResultCell cell = new SearchResultCell();
97 cell.setKey("col1");
98 cell.setValue("value1-1");
99 row.getCells().add(cell);
100
101 cell = new SearchResultCell();
102 cell.setKey("col2");
103 cell.setValue("value2-1");
104 row.getCells().add(cell);
105
106 searchResult.getRows().add(row);
107
108 row = new SearchResultRow();
109 cell = new SearchResultCell();
110 cell.setKey("col1");
111 cell.setValue("value1-2");
112 row.getCells().add(cell);
113
114 cell = new SearchResultCell();
115 cell.setKey("col2");
116 cell.setValue("value2-2");
117 row.getCells().add(cell);
118
119 searchResult.getRows().add(row);
120 return searchResult;
121 }
122
123 if("test.search2".equals(searchRequest.getSearchKey())){
124 SearchResult searchResult = new SearchResult();
125 SearchResultRow row = new SearchResultRow();
126 SearchResultCell cell = new SearchResultCell();
127 cell.setKey("C-A");
128 cell.setValue("Avalue1-1");
129 row.getCells().add(cell);
130
131 cell = new SearchResultCell();
132 cell.setKey("C-B");
133 cell.setValue("Avalue2-1");
134 row.getCells().add(cell);
135
136 searchResult.getRows().add(row);
137
138 row = new SearchResultRow();
139 cell = new SearchResultCell();
140 cell.setKey("C-A");
141 cell.setValue("Avalue1-2");
142 row.getCells().add(cell);
143
144 cell = new SearchResultCell();
145 cell.setKey("C-B");
146 cell.setValue("Avalue2-2");
147 row.getCells().add(cell);
148
149 searchResult.getRows().add(row);
150 return searchResult;
151 }else if("test.crossSearch".equals(searchRequest.getSearchKey())){
152 return sm.search(searchRequest, null);
153 }
154 return null;
155 }
156
157 }