@Test public void testSortingNoSortBySortingSupported() throws Exception { // Setup final String searchPhrase = "*"; final int pageSize = 1; WfsSource source = getWfsSource( ONE_TEXT_PROPERTY_SCHEMA, MockWfsServer.getFilterCapabilities(), Wfs20Constants.EPSG_4326_URN, 1, false, false, 0); QueryImpl query = new QueryImpl(builder.attribute(Metacard.ANY_TEXT).is().like().text(searchPhrase)); query.setPageSize(pageSize); // Perform Test GetFeatureType featureType = source.buildGetFeatureRequest(query); // Verify QueryType queryType = (QueryType) featureType.getAbstractQueryExpression().get(0).getValue(); assertFalse(queryType.isSetAbstractSortingClause()); }
/** * Verify that the SortBy is NOT set. In this case, sorting is not supported in the capabilities. */ @Test public void testSortingAscendingSortingNotSupported() throws Exception { // Setup final String searchPhrase = "*"; final String mockTemporalFeatureProperty = "myTemporalFeatureProperty"; final String mockFeatureType = "{http://example.com}" + SAMPLE_FEATURE_NAME + 0; final int pageSize = 1; // Set ImplementsSorting to FALSE (sorting not supported) FilterCapabilities mockCapabilitiesSortingNotSupported = MockWfsServer.getFilterCapabilities(); ConformanceType conformance = mockCapabilitiesSortingNotSupported.getConformance(); List<DomainType> domainTypes = conformance.getConstraint(); for (DomainType domainType : domainTypes) { if (StringUtils.equals(domainType.getName(), "ImplementsSorting")) { ValueType valueType = new ValueType(); valueType.setValue("FALSE"); domainType.setDefaultValue(valueType); break; } } WfsSource source = getWfsSource( ONE_TEXT_PROPERTY_SCHEMA, mockCapabilitiesSortingNotSupported, Wfs20Constants.EPSG_4326_URN, 1, false, false, 0); MetacardMapper mockMetacardMapper = mock(MetacardMapper.class); when(mockMetacardMapper.getFeatureType()).thenReturn(mockFeatureType); when(mockMetacardMapper.getSortByTemporalFeatureProperty()) .thenReturn(mockTemporalFeatureProperty); List<MetacardMapper> mappers = new ArrayList<MetacardMapper>(1); mappers.add(mockMetacardMapper); source.setMetacardToFeatureMapper(mappers); QueryImpl query = new QueryImpl(builder.attribute(Metacard.ANY_TEXT).is().like().text(searchPhrase)); query.setPageSize(pageSize); SortBy sortBy = new SortByImpl(Result.TEMPORAL, SortOrder.ASCENDING); query.setSortBy(sortBy); // Perform Test GetFeatureType featureType = source.buildGetFeatureRequest(query); // Verify QueryType queryType = (QueryType) featureType.getAbstractQueryExpression().get(0).getValue(); assertFalse(queryType.isSetAbstractSortingClause()); }
/** * Verify that the SortBy is NOT set. In this case, there is no mapping for the incoming sort * property of TEMPORAL so no SortBy should be set. * * <p><?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns5:GetFeature startIndex="1" * count="1" service="WFS" version="2.0.0" xmlns:ns2="http://www.opengis.net/ows/1.1" * xmlns="http://www.opengis.net/fes/2.0" xmlns:ns4="http://www.opengis.net/gml" * xmlns:ns3="http://www.w3.org/1999/xlink" xmlns:ns5="http://www.opengis.net/wfs/2.0"> <ns5:Query * typeNames="SampleFeature0" handle="SampleFeature0"> <Filter> <PropertyIsLike wildCard="*" * singleChar="?" escapeChar="!"> <Literal>*</Literal> <ValueReference>title</ValueReference> * </PropertyIsLike> </Filter> </ns5:Query> </ns5:GetFeature> */ @Test public void testSortingAscendingNoFeaturePropertyMappingSortingSupported() throws Exception { // Setup final String searchPhrase = "*"; final String mockFeatureType = "{http://example.com}" + SAMPLE_FEATURE_NAME + 0; final int pageSize = 1; WfsSource source = getWfsSource( ONE_TEXT_PROPERTY_SCHEMA, MockWfsServer.getFilterCapabilities(), Wfs20Constants.EPSG_4326_URN, 1, false, false, 0); MetacardMapper mockMetacardMapper = mock(MetacardMapper.class); when(mockMetacardMapper.getFeatureType()).thenReturn(mockFeatureType); List<MetacardMapper> mappers = new ArrayList<MetacardMapper>(1); mappers.add(mockMetacardMapper); source.setMetacardToFeatureMapper(mappers); QueryImpl query = new QueryImpl(builder.attribute(Metacard.ANY_TEXT).is().like().text(searchPhrase)); query.setPageSize(pageSize); SortBy sortBy = new SortByImpl(Result.TEMPORAL, SortOrder.ASCENDING); query.setSortBy(sortBy); // Perform Test GetFeatureType featureType = source.buildGetFeatureRequest(query); // Verify QueryType queryType = (QueryType) featureType.getAbstractQueryExpression().get(0).getValue(); assertFalse(queryType.isSetAbstractSortingClause()); }