package org.deegree.securityproxy.authentication.ows.raster;
import static java.util.Collections.emptyMap;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import java.util.Collections;
import java.util.Map;
import org.deegree.securityproxy.authentication.ows.domain.LimitedOwsServiceVersion;
import org.junit.Test;
/**
* Tests for {@link RasterPermission}.
*
* @author <a href="stenger@lat-lon.de">Dirk Stenger</a>
* @author last edited by: $Author: stenger $
* @version $Revision: $, $Date: $
*/
public class RasterPermissionTest {
private static final String SERVICE_TYPE = "wms";
private static final String OPERATION_TYPE = "GetCoverage";
private static final LimitedOwsServiceVersion VERSION = new LimitedOwsServiceVersion( "<= 1.2.0" );
private static final String COVERAGE_NAME = "layerName";
private static final String SERVICE_NAME = "serviceName";
private static final String INTERNAL_SERVICE_URL = "serviceUrl";
@Test
public void testGetAdditionalKeyValuePairs()
throws Exception {
Map<String, String[]> requestParametersMap = createRequestParametersMap();
RasterPermission wcsPermission = new RasterPermission( SERVICE_TYPE, OPERATION_TYPE, VERSION, COVERAGE_NAME,
SERVICE_NAME, INTERNAL_SERVICE_URL, requestParametersMap );
Map<String, String[]> requestParameters = wcsPermission.getAdditionalKeyValuePairs();
assertThat( requestParameters, is( requestParametersMap ) );
}
@Test
public void testGetAdditionalKeyValuePairsWithNull()
throws Exception {
RasterPermission wcsPermission = new RasterPermission( SERVICE_TYPE, OPERATION_TYPE, VERSION, COVERAGE_NAME,
SERVICE_NAME, INTERNAL_SERVICE_URL, null );
Map<String, String[]> emptyRequestParametersMap = createEmptyRequestParametersMap();
Map<String, String[]> requestParameters = wcsPermission.getAdditionalKeyValuePairs();
assertThat( requestParameters, is( emptyRequestParametersMap ) );
}
@Test
public void testGetAdditionalKeyValuePairsWithEmptyMap()
throws Exception {
Map<String, String[]> emptyRequestParametersMap = createEmptyRequestParametersMap();
RasterPermission wcsPermission = new RasterPermission( SERVICE_TYPE, OPERATION_TYPE, VERSION, COVERAGE_NAME,
SERVICE_NAME, INTERNAL_SERVICE_URL,
emptyRequestParametersMap );
Map<String, String[]> requestParameters = wcsPermission.getAdditionalKeyValuePairs();
assertThat( requestParameters, is( emptyRequestParametersMap ) );
}
@Test(expected = UnsupportedOperationException.class)
public void testGetAdditionalKeyValuePairsShouldReturnUnmodifiableFilterList()
throws Exception {
RasterPermission wcsPermission = new RasterPermission( SERVICE_TYPE, OPERATION_TYPE, VERSION, COVERAGE_NAME,
SERVICE_NAME, INTERNAL_SERVICE_URL,
createRequestParametersMap() );
Map<String, String[]> requestParameters = wcsPermission.getAdditionalKeyValuePairs();
requestParameters.put( "key", new String[] { "value" } );
}
private Map<String, String[]> createRequestParametersMap() {
return Collections.singletonMap( "key", new String[] { "value" } );
}
private Map<String, String[]> createEmptyRequestParametersMap() {
return emptyMap();
}
}