/* (c) 2016 Open Source Geospatial Foundation - all rights reserved * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.wms; import java.io.IOException; import java.util.Arrays; import org.easymock.classextension.EasyMock; import org.geoserver.catalog.FeatureTypeInfo; import org.geoserver.catalog.LayerInfo; import org.geoserver.catalog.ResourceInfo; import org.geoserver.catalog.StoreInfo; import org.geoserver.catalog.impl.AttributeTypeInfoImpl; import org.geoserver.data.test.MockCatalogBuilder; import org.geoserver.data.test.MockCreator; import org.geoserver.data.test.MockTestData; import org.geoserver.test.GeoServerMockTestSupport; import org.junit.Test; import com.vividsolutions.jts.geom.Polygon; public class WMSValidatorTest extends GeoServerMockTestSupport { @Override protected MockTestData createTestData() throws Exception { MockTestData td = new MockTestData(); td.setMockCreator(new MockCreator() { @Override public void onResource(String name, ResourceInfo r, StoreInfo s, MockCatalogBuilder b) { if(name.equals("Buildings")) { FeatureTypeInfo info = (FeatureTypeInfo) r; AttributeTypeInfoImpl geom1 = new AttributeTypeInfoImpl(); geom1.setName("geom"); EasyMock.expect(info.getAttributes()).andReturn(Arrays.asList(geom1)).anyTimes(); AttributeTypeInfoImpl geom2 = new AttributeTypeInfoImpl(); geom2.setName("geom"); geom2.setBinding(Polygon.class); try { EasyMock.expect(info.attributes()).andReturn(Arrays.asList(geom2)).anyTimes(); } catch (IOException e) { // will not happen } } super.onResource(name, r, s, b); } }); return td; } @Test public void testGeometryCheckLegacyDataDir() { // used to NPE LayerInfo layer = getCatalog().getLayerByName("Buildings"); new WMSValidator().validate(layer, false); } }