Merged 5.2.N (5.2.1) to HEAD (5.2)

130179 gjames: Merged searchapi (5.2.1) to 5.2.N (5.2.1)
      129819 gjames: SEARCH-113: The Json representation is immutable.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@130330 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Alan Davis
2016-09-06 22:04:33 +00:00
parent a0a62612f4
commit e9783d8e04
4 changed files with 36 additions and 47 deletions

View File

@@ -26,18 +26,27 @@
package org.alfresco.rest.api.search.model;
import org.codehaus.jackson.annotate.JsonCreator;
import org.codehaus.jackson.annotate.JsonProperty;
/**
* POJO class representing the query element of the JSON body
**/
public class Query
{
String language;
String query;
String userQuery;
private final String language;
private final String query;
private final String userQuery;
public Query()
@JsonCreator
public Query(@JsonProperty("language") String language,
@JsonProperty("query") String query,
@JsonProperty("userQuery") String userQuery)
{
this.language = language;
this.query = query;
this.userQuery = userQuery;
}
public String getLanguage()
@@ -45,28 +54,14 @@ public class Query
return language;
}
public void setLanguage(String language)
{
this.language = language;
}
public String getQuery()
{
return query;
}
public void setQuery(String query)
{
this.query = query;
}
public String getUserQuery()
{
return userQuery;
}
public void setUserQuery(String userQuery)
{
this.userQuery = userQuery;
}
}

View File

@@ -27,6 +27,8 @@
package org.alfresco.rest.api.search.model;
import org.alfresco.rest.framework.resource.parameters.Paging;
import org.codehaus.jackson.annotate.JsonCreator;
import org.codehaus.jackson.annotate.JsonProperty;
/**
* POJO class representing the JSON body for a search request
@@ -35,11 +37,17 @@ import org.alfresco.rest.framework.resource.parameters.Paging;
*/
public class SearchQuery
{
Query query;
Paging paging;
private final Query query;
private final Paging paging;
public SearchQuery()
public static final SearchQuery EMPTY = new SearchQuery(null, null);
@JsonCreator
public SearchQuery(@JsonProperty("query") Query query,
@JsonProperty("paging") Paging paging)
{
this.query = query;
this.paging = paging;
}
public Query getQuery()
@@ -47,18 +55,8 @@ public class SearchQuery
return query;
}
public void setQuery(Query query)
{
this.query = query;
}
public Paging getPaging()
{
return paging;
}
public void setPaging(Paging paging)
{
this.paging = paging;
}
}

View File

@@ -111,7 +111,7 @@ public class ResultMapperTests
@Test
public void testNoResults() throws Exception
{
CollectionWithPagingInfo<Node> collection = mapper.toCollectionWithPagingInfo(mockParams(new SearchQuery()),new EmptyResultSet());
CollectionWithPagingInfo<Node> collection = mapper.toCollectionWithPagingInfo(mockParams(SearchQuery.EMPTY),new EmptyResultSet());
assertNotNull(collection);
assertFalse(collection.hasMoreItems());
assertTrue(collection.getTotalItems() < 1);
@@ -121,7 +121,7 @@ public class ResultMapperTests
public void testToCollectionWithPagingInfo() throws Exception
{
ResultSet results = mockResultset();
CollectionWithPagingInfo<Node> collectionWithPage = mapper.toCollectionWithPagingInfo(mockParams(new SearchQuery()),results);
CollectionWithPagingInfo<Node> collectionWithPage = mapper.toCollectionWithPagingInfo(mockParams(SearchQuery.EMPTY),results);
assertNotNull(collectionWithPage);
Long found = results.getNumberFound();
assertEquals(found.intValue(), collectionWithPage.getTotalItems().intValue());

View File

@@ -55,7 +55,7 @@ public class SearchMapperTests
@Test(expected = IllegalArgumentException.class)
public void testMandatory() throws Exception
{
SearchParameters searchParameters = searchMapper.toSearchParameters(new SearchQuery());
SearchParameters searchParameters = searchMapper.toSearchParameters(SearchQuery.EMPTY);
}
@Test
@@ -75,15 +75,14 @@ public class SearchMapperTests
SearchParameters searchParameters = new SearchParameters();
try
{
searchMapper.fromQuery(searchParameters, new Query());
searchMapper.fromQuery(searchParameters, new Query(null,null, null));
fail();
} catch (IllegalArgumentException iae)
{
assertTrue(iae.getLocalizedMessage().contains("query is a mandatory parameter"));
}
Query q = new Query();
q.setQuery("hello");
Query q = new Query(null,"hello", null);
try
{
@@ -94,7 +93,7 @@ public class SearchMapperTests
assertTrue(iae.getLocalizedMessage().contains("language is a mandatory parameter"));
}
q.setLanguage("world");
q = new Query("world", "hello", null);
try
{
@@ -106,21 +105,21 @@ public class SearchMapperTests
//world is not a valid language type
}
q.setLanguage("afts");
q = new Query("afts", "hello", null);
searchMapper.fromQuery(searchParameters, q);
assertEquals(LANGUAGE_FTS_ALFRESCO, searchParameters.getLanguage());
q.setLanguage("cMiS");
q = new Query("cMiS", "hello", null);
searchMapper.fromQuery(searchParameters, q);
assertEquals(LANGUAGE_CMIS_ALFRESCO, searchParameters.getLanguage());
q.setLanguage("LuCENE");
q = new Query("LuCENE", "hello", null);
searchMapper.fromQuery(searchParameters, q);
assertEquals(LANGUAGE_LUCENE, searchParameters.getLanguage());
assertEquals("hello", searchParameters.getQuery());
q.setUserQuery("Heload");
q = new Query("LuCENE", "hello", "Heload");
searchMapper.fromQuery(searchParameters, q);
assertEquals("Heload", searchParameters.getSearchTerm());
}
@@ -139,11 +138,8 @@ public class SearchMapperTests
private SearchQuery minimalQuery()
{
SearchQuery sq = new SearchQuery();
Query query = new Query();
sq.setQuery(query);
query.setQuery("foo");
query.setLanguage("cmis");
Query query = new Query("cmis", "foo", "");
SearchQuery sq = new SearchQuery(query,null);
return sq;
}
}