/* (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.store;
import static org.junit.Assert.*;
import org.apache.wicket.markup.repeater.data.DataView;
import org.apache.wicket.markup.repeater.data.IDataProvider;
import org.geoserver.catalog.Catalog;
import org.geoserver.catalog.Predicates;
import org.geoserver.catalog.StoreInfo;
import org.geoserver.catalog.util.CloseableIterator;
import org.geoserver.web.GeoServerWicketTestSupport;
import org.junit.Before;
import org.junit.Test;
import org.opengis.filter.Filter;
public class StorePageTest extends GeoServerWicketTestSupport {
@Before
public void init() {
login();
tester.startPage(StorePage.class);
// print(tester.getLastRenderedPage(), true, true);
}
@Test
public void testLoad() {
tester.assertRenderedPage(StorePage.class);
tester.assertNoErrorMessage();
DataView dv = (DataView) tester.getComponentFromLastRenderedPage("table:listContainer:items");
Catalog catalog = getCatalog();
assertEquals(dv.size(), catalog.getStores(StoreInfo.class).size());
IDataProvider dataProvider = dv.getDataProvider();
// Ensure the data provider is an instance of StoreProvider
assertTrue(dataProvider instanceof StoreProvider);
// Cast to StoreProvider
StoreProvider provider = (StoreProvider) dataProvider;
// Ensure that an unsupportedException is thrown when requesting the Items directly
boolean catchedException = false;
try {
provider.getItems();
} catch (UnsupportedOperationException e) {
catchedException = true;
}
// Ensure the exception is cacthed
assertTrue(catchedException);
StoreInfo actual = provider.iterator(0, 1).next();
CloseableIterator<StoreInfo> list = catalog.list(StoreInfo.class, Filter.INCLUDE, 0, 1,
Predicates.sortBy("name", true));
assertTrue(list.hasNext());
StoreInfo expected = list.next();
// Close the iterator
try {
if (list != null) {
list.close();
}
} catch (Exception e) {
throw new RuntimeException(e);
}
assertEquals(expected, actual);
}
}