use of ddf.catalog.filter.ExpressionBuilder in project ddf by codice.
the class TagsFilterQueryPluginTest method addTagsToCacheSource.
@Test
public void addTagsToCacheSource() throws Exception {
AttributeBuilder attributeBuilder = mock(AttributeBuilder.class);
ExpressionBuilder expressionBuilder = mock(ExpressionBuilder.class);
ContextualExpressionBuilder contextualExpressionBuilder = mock(ContextualExpressionBuilder.class);
Filter emptyFilter = mock(Filter.class);
Filter defaultTagFilter = mock(Filter.class);
when(attributeBuilder.empty()).thenReturn(emptyFilter);
when(attributeBuilder.is()).thenReturn(expressionBuilder);
when(expressionBuilder.like()).thenReturn(contextualExpressionBuilder);
when(contextualExpressionBuilder.text(Metacard.DEFAULT_TAG)).thenReturn(defaultTagFilter);
Or anyOf = mock(Or.class);
when(filterBuilder.anyOf(ImmutableList.of(defaultTagFilter, emptyFilter))).thenReturn(anyOf);
when(filterBuilder.allOf(anyOf, query)).thenReturn(mock(And.class));
when(filterAdapter.adapt(any(), any())).thenReturn(false);
when(filterBuilder.attribute(Metacard.TAGS)).thenReturn(attributeBuilder);
QueryRequest process = plugin.process(cache, queryRequest);
assertThat(process, not(queryRequest));
}
use of ddf.catalog.filter.ExpressionBuilder in project ddf by codice.
the class TagsFilterQueryPluginTest method addTagsToCatalogProvider.
@Test
public void addTagsToCatalogProvider() throws Exception {
AttributeBuilder attributeBuilder = mock(AttributeBuilder.class);
ExpressionBuilder expressionBuilder = mock(ExpressionBuilder.class);
ContextualExpressionBuilder contextualExpressionBuilder = mock(ContextualExpressionBuilder.class);
Filter emptyFilter = mock(Filter.class);
Filter defaultTagFilter = mock(Filter.class);
when(attributeBuilder.empty()).thenReturn(emptyFilter);
when(attributeBuilder.is()).thenReturn(expressionBuilder);
when(expressionBuilder.like()).thenReturn(contextualExpressionBuilder);
when(contextualExpressionBuilder.text(Metacard.DEFAULT_TAG)).thenReturn(defaultTagFilter);
Or anyOf = mock(Or.class);
when(filterBuilder.anyOf(ImmutableList.of(defaultTagFilter, emptyFilter))).thenReturn(anyOf);
when(filterBuilder.allOf(anyOf, query)).thenReturn(mock(And.class));
when(filterAdapter.adapt(any(), any())).thenReturn(false);
when(filterBuilder.attribute(Metacard.TAGS)).thenReturn(attributeBuilder);
QueryRequest process = plugin.process(source, queryRequest);
assertThat(process, not(queryRequest));
}
use of ddf.catalog.filter.ExpressionBuilder in project ddf by codice.
the class OpenSearchEndpointTest method testProcessQueryForProperHandlingOfSiteNameLOCAL.
/**
* Test method for
* {@link org.codice.ddf.endpoints.OpenSearchEndpoint#processQuery(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, javax.ws.rs.core.UriInfo, java.lang.String, java.lang.String)}
* .
* <p>
* This test will verify that the string "local" in the sources passed to
* OpenSearchEndpoint.processQuery is replaced with the local site name (in this case the mocked
* name "TestSiteName"). The QueryRequest object is checked when the framework.query is called
* to retrieve the OpenSearchQuery, which contains the Set of sites. An assertion within the
* Answer object for the call framework.query checks that the sites Set is contains the
* TEST_SITE_NAME.
*
* @throws URISyntaxException
* @throws FederationException
* @throws SourceUnavailableException
* @throws UnsupportedQueryException
* @throws UnsupportedEncodingException
* @throws CatalogTransformerException
*/
@SuppressWarnings("unchecked")
@Test
public void testProcessQueryForProperHandlingOfSiteNameLOCAL() throws URISyntaxException, UnsupportedQueryException, SourceUnavailableException, FederationException, UnsupportedEncodingException, CatalogTransformerException {
// ***Test setup***
final String testSiteName = "TestSiteName";
CatalogFramework mockFramework = mock(CatalogFramework.class);
FilterBuilder mockFilterBuilder = mock(FilterBuilder.class);
AttributeBuilder mockAB = mock(AttributeBuilder.class);
ExpressionBuilder mockEB = mock(ExpressionBuilder.class);
ContextualExpressionBuilder mockCEB = mock(ContextualExpressionBuilder.class);
Filter mockFilter = mock(Filter.class);
when(mockFilterBuilder.attribute(anyString())).thenReturn(mockAB);
when(mockAB.is()).thenReturn(mockEB);
when(mockEB.like()).thenReturn(mockCEB);
when(mockCEB.text(anyString())).thenReturn(mockFilter);
String searchTerms = "searchForThis";
// "local" MUST be included
String sources = "test, local";
String count = "200";
// dummy UriInfo, not really used functionally
UriInfo mockUriInfo = mock(UriInfo.class);
URI uri = new URI("test");
when(mockUriInfo.getRequestUri()).thenReturn(uri);
MultivaluedMap<String, String> mockMVMap = mock(MultivaluedMap.class);
when(mockMVMap.get("subscription")).thenReturn(null);
when(mockMVMap.get("interval")).thenReturn(null);
when(mockUriInfo.getQueryParameters()).thenReturn(mockMVMap);
@SuppressWarnings("unused") BinaryContent mockByteContent = mock(BinaryContent.class);
// Check on the sites passed in to framework.query
when(mockFramework.query(any(QueryRequest.class))).thenAnswer(new Answer<Object>() {
public Object answer(InvocationOnMock invocation) {
QueryRequest queryRequest = (QueryRequest) invocation.getArguments()[0];
// ***Test verification***
// This assert is the whole point of this unit test
Assert.assertTrue(((OpenSearchQuery) queryRequest.getQuery()).getSiteIds().contains(testSiteName));
return new QueryResponseImpl(queryRequest);
}
});
// setup the BinaryContent for the call to Response.ok(...)
// This is just needed to get the method to complete, the
BinaryContent mockBinaryContent = mock(BinaryContent.class);
InputStream is = new ByteArrayInputStream("Test String From InputStream".getBytes("UTF-8"));
when(mockBinaryContent.getInputStream()).thenReturn(is);
when(mockBinaryContent.getMimeTypeValue()).thenReturn("text/plain");
when(mockFramework.transform(any(QueryResponse.class), anyString(), anyMap())).thenReturn(mockBinaryContent);
OpenSearchEndpoint osEndPoint = new OpenSearchEndpoint(mockFramework, mockFilterBuilder);
System.setProperty(SystemInfo.SITE_NAME, testSiteName);
// ***Test Execution***
osEndPoint.processQuery(searchTerms, null, sources, null, null, count, null, null, null, null, null, null, null, null, null, null, null, null, mockUriInfo, null, null, null);
}
Aggregations