/* (c) 2015 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.security.decorators; import static org.easymock.EasyMock.*; import org.geoserver.security.CatalogMode; import org.geoserver.security.VectorAccessLimits; import org.geoserver.security.WrapperPolicy; import org.geoserver.security.impl.SecureObjectsTest; import org.geotools.data.FeatureStore; import org.geotools.data.simple.SimpleFeatureStore; import org.geotools.feature.NameImpl; import org.junit.Test; import org.opengis.feature.type.Name; import org.opengis.filter.Filter; public class SecuredFeatureStoreTest extends SecureObjectsTest { @Test public void testUpdateTwiceComplex() throws Exception { // build up the mock FeatureStore fs = createMock(FeatureStore.class); Name[] names = new Name[] { new NameImpl("foo") }; Object[] values = new Object[] { "abc" }; Filter filter = Filter.INCLUDE; fs.modifyFeatures(eq(names), eq(values), eq(filter)); expectLastCall().once(); replay(fs); VectorAccessLimits limits = new VectorAccessLimits(CatalogMode.HIDE, null, Filter.INCLUDE, null, Filter.INCLUDE); SecuredFeatureStore store = new SecuredFeatureStore(fs, WrapperPolicy.readWrite(limits)); store.modifyFeatures(names, values, filter); verify(fs); } @Test public void testUpdateTwiceSimple() throws Exception { // build up the mock SimpleFeatureStore fs = createMock(SimpleFeatureStore.class); String[] names = new String[] { "foo" }; Object[] values = new Object[] { "abc" }; Filter filter = Filter.INCLUDE; fs.modifyFeatures(eq(names), eq(values), eq(filter)); expectLastCall().once(); replay(fs); VectorAccessLimits limits = new VectorAccessLimits(CatalogMode.HIDE, null, Filter.INCLUDE, null, Filter.INCLUDE); SecuredSimpleFeatureStore store = new SecuredSimpleFeatureStore(fs, WrapperPolicy.readWrite(limits)); store.modifyFeatures(names, values, filter); verify(fs); } }