/* * Constellation - An open source and standard compliant SDI * http://www.constellation-sdi.org * * Copyright 2014 Geomatys. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.constellation.process.provider.style; import org.constellation.configuration.ConfigDirectory; import org.constellation.configuration.ConfigurationException; import org.constellation.process.AbstractProcessTest; import org.constellation.provider.ProviderFactory; import org.constellation.provider.StyleProvider; import org.constellation.provider.StyleProviderFactory; import org.constellation.provider.StyleProviders; import org.junit.AfterClass; import org.junit.BeforeClass; import org.opengis.parameter.ParameterDescriptorGroup; import org.opengis.parameter.ParameterValueGroup; import java.io.File; import java.net.MalformedURLException; import java.net.URL; import java.util.Collection; import javax.annotation.PostConstruct; /** * * @author Quentin Boileau (Geomatys). */ public abstract class AbstractMapStyleTest extends AbstractProcessTest { protected static File configDirectory; protected static URL EMPTY_CSV; // dataStore service protected static ProviderFactory SLD_SERVICE; public AbstractMapStyleTest(final String str) { super(str); } @PostConstruct public void fillSLDService() { final Collection<StyleProviderFactory> availableLayerServices = StyleProviders.getInstance().getFactories(); for (StyleProviderFactory tmpService : availableLayerServices) { if ("sld".equals(tmpService.getName())) { SLD_SERVICE = tmpService; } } } @BeforeClass public static void initFolder() throws MalformedURLException { configDirectory = ConfigDirectory.setupTestEnvironement("AbstractMapStyleTest"); File providerDirectory = new File(configDirectory, "provider"); providerDirectory.mkdir(); File sld = new File(providerDirectory, "sld.xml"); File csv = new File(configDirectory, "file.csv"); EMPTY_CSV = csv.toURI().toURL(); } @AfterClass public static void destroyFolder() { ConfigDirectory.shutdownTestEnvironement("AbstractMapStyleTest"); } /** * * * @param sercice * @param providerID * @return * @throws MalformedURLException */ protected ParameterValueGroup buildProvider(final String providerID, final boolean loadAll) throws MalformedURLException { ParameterDescriptorGroup desc = SLD_SERVICE.getProviderDescriptor(); if (desc != null) { final ParameterDescriptorGroup sourceDesc = desc; final ParameterValueGroup sourceValue = sourceDesc.createValue(); sourceValue.parameter("id").setValue(providerID); sourceValue.parameter("load_all").setValue(loadAll); final ParameterValueGroup sldFolderValue = sourceValue.groups("sldFolder").get(0); final File sldFolder = new File(configDirectory, "sldDir"); sldFolder.mkdir(); sldFolderValue.parameter("path").setValue(sldFolder.getAbsolutePath()); return sourceValue; } else { //error return null; } } /** * Register a provider. * @param providerSource */ protected void addProvider(String id,ParameterValueGroup providerSource) throws ConfigurationException { StyleProviders.getInstance().createProvider(id, (StyleProviderFactory) SLD_SERVICE, providerSource); } /** * Un-register a provider * @param id */ protected void removeProvider(String id) throws ConfigurationException { StyleProvider provider = null; for (StyleProvider p : StyleProviders.getInstance().getProviders()) { if (p.getId().equals(id)) { provider = p; } } StyleProviders.getInstance().removeProvider(provider); } }