package org.geoserver.catalog.impl; import java.util.List; import org.geoserver.catalog.DataStoreInfo; import org.geoserver.catalog.NamespaceInfo; import org.geoserver.catalog.WorkspaceInfo; import org.geoserver.test.GeoServerTestSupport; public class WorkspaceNamespaceConstencyTest extends GeoServerTestSupport { public void testChangeWorkspace() { WorkspaceInfo ws = getCatalog().getDefaultWorkspace(); ws.setName(ws.getName() + "abcd"); getCatalog().save(ws); // check the corresponding namespace has been modified NamespaceInfo ns = getCatalog().getDefaultNamespace(); assertNotNull(ns); assertEquals(ws.getName(), ns.getPrefix()); } public void testChangeNamespace() { NamespaceInfo ns = getCatalog().getDefaultNamespace(); ns.setPrefix(ns.getPrefix() + "abcd"); getCatalog().save(ns); // check the corresponding namespace has been modified WorkspaceInfo ws = getCatalog().getDefaultWorkspace(); assertNotNull(ws); assertEquals(ns.getPrefix(), ws.getName()); } public void testChangeDefaultWorkspace() { List<WorkspaceInfo> workspaces = getCatalog().getWorkspaces(); workspaces.remove(getCatalog().getDefaultWorkspace()); WorkspaceInfo newDefault = workspaces.get(0); getCatalog().setDefaultWorkspace(newDefault); // check the default namespace changed accordingly NamespaceInfo ns = getCatalog().getDefaultNamespace(); assertNotNull(ns); assertEquals(newDefault.getName(), ns.getPrefix()); } public void testChangeDefaultNamespace() { List<NamespaceInfo> namespaces = getCatalog().getNamespaces(); namespaces.remove(getCatalog().getDefaultNamespace()); NamespaceInfo newDefault = namespaces.get(0); getCatalog().setDefaultNamespace(newDefault); // check the default namespace changed accordingly WorkspaceInfo ws = getCatalog().getDefaultWorkspace(); assertNotNull(ws); assertEquals(newDefault.getName(), ws.getName()); } public void testChangeNamespaceURI() { // gran a workspace that has stores in it WorkspaceInfo ws = getCatalog().getStores(DataStoreInfo.class).get(0).getWorkspace(); // alter the namespace uri NamespaceInfo ns = getCatalog().getNamespaceByPrefix(ws.getName()); ns.setURI("http://www.geoserver.org/newNamespace"); getCatalog().save(ns); List<DataStoreInfo> stores = getCatalog().getDataStoresByWorkspace(ws); assertTrue(stores.size() > 0); for (DataStoreInfo ds : stores) { String nsURI = (String) ds.getConnectionParameters().get("namespace"); if(nsURI != null) { assertEquals(ns.getURI(), nsURI); } } } }