/** * Add a {@link StringParameterFilter} to the layer, replacing any existing filter for the same * parameter. * * @param tileLayerInfo layer to update the filter on * @param paramKey key for the parameter * @param createParam create a new filter if there is none to replace for the specified key * @param defaultValue default value * @param allowedValues legal values for the parameter */ public static void updateStringParameterFilter( final GeoServerTileLayerInfo tileLayerInfo, final String paramKey, boolean createParam, final String defaultValue, final Set<String> allowedValues) { createParam |= tileLayerInfo.removeParameterFilter(paramKey); if (createParam && allowedValues != null && allowedValues.size() > 0) { // make sure default value is among the list of allowed values Set<String> values = new TreeSet<String>(allowedValues); StringParameterFilter stringListFilter = new StringParameterFilter(); stringListFilter.setKey(paramKey); stringListFilter.setDefaultValue(defaultValue == null ? "" : defaultValue); values.addAll(stringListFilter.getValues()); stringListFilter.setValues(new ArrayList<String>(values)); tileLayerInfo.addParameterFilter(stringListFilter); } }
stylesParameterFilter.setValues( styles.stream().map(StyleImpl::getName).collect(Collectors.toList())); paramFilters.add(stylesParameterFilter);
@Test public void testNormalizeLocale() throws Exception { filter.setValues(Arrays.asList("f\u0131o", "B\u0131r", "BIZ")); filter.setNormalize(new CaseNormalizer(Case.LOWER, Locale.forLanguageTag("tr"))); assertThat(filter.getLegalValues(), containsInAnyOrder("f\u0131o", "b\u0131r", "b\u0131z")); for (String test : Arrays.asList("f\u0131o", "B\u0131r", "BIZ")) { assertThat(filter.applies(test), is(true)); assertThat(filter.apply(test), equalTo(test.toLowerCase(Locale.forLanguageTag("tr")))); } for (String test : Arrays.asList( "F\u0131o", "FIO", "B\u0131R", "b\u0131r", "BIR", "BIz", "b\u0131z")) { assertThat(filter.applies(test), is(true)); assertThat(filter.apply(test), equalTo(test.toLowerCase(Locale.forLanguageTag("tr")))); } for (String test : Arrays.asList("f\u0131oo", "f\u0131", "B\u0131", "BB\u0131rr", "BI", "BBIZ")) { assertThat(filter.applies(test), is(false)); try { filter.apply(test); fail(); } catch (Exception ex) { assertThat(ex, instanceOf(ParameterException.class)); } } assertThat(filter.apply(null), equalTo("Default")); assertThat(filter.apply(""), equalTo("Default")); }
@Before public void setUp() { filter = new StringParameterFilter(); filter.setKey("TEST"); filter.setValues(Arrays.asList("foo", "Bar", "BAZ")); filter.setDefaultValue("Default"); xs = new GeoWebCacheXStream(); xs = XMLConfiguration.getConfiguredXStream(xs, new StaticWebApplicationContext()); }
stylesParameterFilter.setValues(Arrays.asList("style1", "style2"));
styles.setValues(Arrays.asList("style-a", "style-b")); when(tileLayer.getParameterFilters()).thenReturn(Collections.singletonList(styles));
filter.setValues(Arrays.asList("polygon", "point")); filter.setDefaultValue("polygon");
testFilter.setDefaultValue("DEFAULT"); testFilter.setKey("testKey"); testFilter.setValues(Arrays.asList("testValue2")); EasyMock.expect(layer.getParameterFilters()).andStubReturn(Arrays.asList(testFilter)); EasyMock.replay(layer);
parameterFilter.setKey("STYLES"); parameterFilter.setDefaultValue("population"); parameterFilter.setValues(Arrays.asList("population", "polygon", "pophatch"));
testFilter.setDefaultValue("DEFAULT"); testFilter.setKey(paramKey); testFilter.setValues(Arrays.asList("keep1", "keep2", "keep3")); EasyMock.expect(layer.getParameterFilters()).andStubReturn(Arrays.asList(testFilter)); EasyMock.replay(layer);
filter.setValues(Arrays.asList("polygon", "point")); filter.setDefaultValue("polygon");