/* (c) 2014 Open Source Geospatial Foundation - all rights reserved
* (c) 2001 - 2013 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.web.data.table;
import static org.junit.Assert.*;
import java.util.List;
import org.geoserver.catalog.Catalog;
import org.geoserver.catalog.FeatureTypeInfo;
import org.geoserver.catalog.StoreInfo;
import org.geoserver.data.test.MockData;
import org.geoserver.data.test.SystemTestData;
import org.geoserver.web.GeoServerWicketTestSupport;
import org.geoserver.web.data.layer.NewLayerPageProvider;
import org.junit.Test;
public class NewLayerProviderTest extends GeoServerWicketTestSupport {
@Override
protected void setUpTestData(SystemTestData testData) throws Exception {
super.setUpTestData(testData);
testData.setUpDefaultRasterLayers();
}
@Test
public void testFeatureType() {
StoreInfo cite = getCatalog().getStoreByName( MockData.CITE_PREFIX,StoreInfo.class );
NewLayerPageProvider provider = new NewLayerPageProvider();
provider.setStoreId(cite.getId());
provider.setShowPublished(true);
assertTrue(provider.size() > 0);
provider.setShowPublished(false);
assertEquals(0, provider.size());
}
@Test
public void testCoverages() {
StoreInfo dem = getCatalog().getStoreByName( MockData.TASMANIA_DEM.getLocalPart(),StoreInfo.class );
NewLayerPageProvider provider = new NewLayerPageProvider();
provider.setStoreId(dem.getId());
provider.setShowPublished(true);
assertTrue(provider.size() > 0);
provider.setShowPublished(false);
// todo: fix this
// assertEquals(0, provider.size());
}
@Test
public void testEmpty() {
NewLayerPageProvider provider = new NewLayerPageProvider();
provider.setShowPublished(true);
assertEquals(0, provider.size());
provider.setShowPublished(false);
assertEquals(0, provider.size());
}
/**
* As per GEOS-3120, if a resource is published but it's name changed, it should still show up
* as published. It wasn't being the case due to comparing the resource's name instead of the
* nativeName against the name the DataStore provides
*/
@Test
public void testPublishedUnpublishedWithChangedResourceName() {
Catalog catalog = getCatalog();
StoreInfo cite = catalog.getStoreByName(MockData.CITE_PREFIX, StoreInfo.class);
List<FeatureTypeInfo> resources = catalog.getResourcesByStore(cite, FeatureTypeInfo.class);
assertTrue(resources.size() > 0);
final int numberOfPublishedResources = resources.size();
NewLayerPageProvider provider = new NewLayerPageProvider();
provider.setStoreId(cite.getId());
provider.setShowPublished(false);
assertEquals(0, provider.size());
provider.setShowPublished(true);
assertEquals(numberOfPublishedResources, provider.size());
FeatureTypeInfo typeInfo = resources.get(0);
typeInfo.setName("notTheNativeName");
catalog.save(typeInfo);
provider = new NewLayerPageProvider();
provider.setStoreId(cite.getId());
provider.setShowPublished(true);
assertEquals(numberOfPublishedResources, provider.size());
provider.setShowPublished(false);
assertEquals(0, provider.size());
}
}