/** * Helper method that adds some tests keywords to a layer group. The provided layer group name * should not be NULL, if the layer group cannot be found an exception will be throw. */ protected void addKeywordsToLayerGroup(String layerGroupName) { // create a list of keywords List<KeywordInfo> keywords = new ArrayList<>(); Keyword keyword1 = new Keyword("keyword1"); keyword1.setLanguage("en"); keyword1.setVocabulary("vocabulary1"); keywords.add(keyword1); Keyword keyword2 = new Keyword("keyword2"); keyword2.setLanguage("pt"); keyword2.setVocabulary("vocabulary2"); keywords.add(keyword2); // add keywords to a layer group LayerGroupInfo layerGroup = getCatalog().getLayerGroupByName(layerGroupName); if (layerGroup == null) { // targeted layer group doesn't exists throw new RuntimeException( String.format("Layer group '%s' doesn't exists.", layerGroupName)); } layerGroup.getKeywords().addAll(keywords); getCatalog().save(layerGroup); }
@org.junit.Test public void testKeywordVocab() throws Exception { FeatureTypeInfo lines = getFeatureTypeInfo(MockData.LINES); Keyword kw = new Keyword("foo"); kw.setVocabulary("bar"); lines.getKeywords().add(kw); getCatalog().save(lines); WMSInfo wms = getGeoServer().getService(WMSInfo.class); kw = new Keyword("baz"); kw.setVocabulary("bar"); wms.getKeywords().add(kw); getGeoServer().save(wms); String linesName = MockData.LINES.getPrefix() + ":" + MockData.LINES.getLocalPart(); Document doc = getAsDOM("wms?service=WMS&request=getCapabilities&version=1.3.0", true); String xpath = "//wms:Layer[wms:Name='" + linesName + "']/wms:KeywordList/wms:Keyword[@vocabulary='bar']"; assertXpathExists(xpath, doc); assertXpathEvaluatesTo("foo", xpath, doc); xpath = "//wms:Service/wms:KeywordList/wms:Keyword[@vocabulary='bar']"; assertXpathExists(xpath, doc); assertXpathEvaluatesTo("baz", xpath, doc); }
keyword1.setVocabulary("vocabulary1"); Keyword keyword2 = new Keyword("keyword2"); keyword2.setLanguage("pt"); keyword2.setVocabulary("vocabulary2");
keyword1.setVocabulary("vocabulary1"); Keyword keyword2 = new Keyword("keyword2"); keyword2.setLanguage("pt"); keyword2.setVocabulary("vocabulary2");