package mil.nga.giat.geowave.adapter.vector.plugin.visibility;
import static org.junit.Assert.*;
import java.text.ParseException;
import mil.nga.giat.geowave.adapter.vector.AvroFeatureDataAdapter;
import mil.nga.giat.geowave.core.store.data.visibility.GlobalVisibilityHandler;
import org.geotools.data.DataUtilities;
import org.geotools.feature.SchemaException;
import org.geotools.filter.text.cql2.CQLException;
import org.junit.Before;
import org.junit.Test;
import org.opengis.feature.simple.SimpleFeature;
import org.opengis.feature.simple.SimpleFeatureType;
public class VisibilityConfigurationTest
{
private SimpleFeatureType schema;
@Before
public void setup()
throws SchemaException,
CQLException,
ParseException {
schema = DataUtilities.createType(
"sp.geostuff",
"geometry:Geometry:srid=4326,pop:java.lang.Long,when:Date,whennot:Date,pid:String");// typeBuilder.buildFeatureType();
}
public static class TestExtension extends
JsonDefinitionColumnVisibilityManagement
{
}
@Test
public void test() {
schema.getDescriptor(
"pid").getUserData().clear();
schema.getDescriptor(
"pid").getUserData().put(
"visibility",
Boolean.TRUE);
schema.getUserData().put(
"visibilityManagerClass",
TestExtension.class.getName());
final VisibilityConfiguration config = new VisibilityConfiguration(
schema);
assertEquals(
"pid",
config.getAttributeName());
assertEquals(
TestExtension.class,
config.getManager().getClass());
config.setAttributeName("pop");
config.setManagerClassName(JsonDefinitionColumnVisibilityManagement.class.getName());
config.updateType(schema);
assertEquals(
Boolean.TRUE,
schema.getDescriptor(
"pop").getUserData().get(
"visibility"));
assertFalse(schema.getDescriptor(
"pid").getUserData().containsKey(
"visibility"));
assertEquals(
JsonDefinitionColumnVisibilityManagement.class.getName(),
schema.getUserData().get(
"visibilityManagerClass"));
}
}