use of com.sldeditor.datasource.extension.filesystem.node.database.DatabaseFeatureClassNode in project sldeditor by robward-scisys.
the class DatabaseInputTest method testDatabaseInput.
/**
* Test method for {@link com.sldeditor.extension.filesystem.database.DatabaseInput#DatabaseInput(com.sldeditor.common.ToolSelectionInterface)}.
*/
@Test
public void testDatabaseInput() {
DatabaseInput input = new DatabaseInput(ToolManager.getInstance());
input.readPropertyFile();
FSTree tree = new FSTree();
DefaultMutableTreeNode rootNode;
try {
rootNode = new DefaultMutableTreeNode("Root");
DefaultTreeModel model = new DefaultTreeModel(rootNode);
input.populate(tree, model, rootNode);
List<SLDDataInterface> sldDataList = input.open(null);
assertNull(sldDataList);
DatabaseConnection connection1 = DatabaseConnectionFactory.createGeoPackage();
String featureClassName = "test feature class";
DatabaseFeatureClassNode fcTreeNode = new DatabaseFeatureClassNode(input, connection1, featureClassName);
Map<String, String> connectionDataMap = new HashMap<String, String>();
connectionDataMap.put(GeoPkgDataStoreFactory.DATABASE.key, "test.gpkg");
connection1.setConnectionDataMap(connectionDataMap);
// Try with no known database connections
SelectedFiles actualSLDContents = input.getSLDContents(fcTreeNode);
assertNotNull(actualSLDContents);
assertTrue(actualSLDContents.isDataSource());
// Add some database connections
input.addNewConnection(connection1);
DatabaseConnection connection2 = DatabaseConnectionFactory.createGeoPackage();
Map<String, String> connectionDataMap2 = new HashMap<String, String>();
connectionDataMap2.put(GeoPkgDataStoreFactory.DATABASE.key, "test2.gpkg");
connection2.setConnectionDataMap(connectionDataMap2);
input.addNewConnection(connection2);
input.addNewConnection(null);
List<SLDDataInterface> sldDataContentsList = input.getSLDContents(fcTreeNode).getSldData();
assertEquals(0, sldDataContentsList.size());
// Try saving a null object
assertFalse(input.save(null));
// Check how many connections we have
assertEquals(2, input.getConnectionDetails().size());
} catch (SecurityException e) {
e.printStackTrace();
fail(e.getMessage());
}
}
use of com.sldeditor.datasource.extension.filesystem.node.database.DatabaseFeatureClassNode in project sldeditor by robward-scisys.
the class VectorToolTest method testVectorToolDBDataSource.
@Test
public void testVectorToolDBDataSource() {
TestMissingSLDAttributes testAttribute = new TestMissingSLDAttributes();
List<CheckAttributeInterface> checkList = new ArrayList<CheckAttributeInterface>();
checkList.add(testAttribute);
CheckAttributeFactory.setOverideCheckList(checkList);
String testsldfile = "/polygon/sld/polygon_polygonwithdefaultlabel.sld";
TestSLDEditor testSLDEditor = null;
try {
testSLDEditor = TestSLDEditor.createAndShowGUI2(null, null, true, null);
} catch (Exception e) {
e.printStackTrace();
}
RenderPanelImpl.setUnderTest(true);
InputStream inputStream = VectorToolTest.class.getResourceAsStream(testsldfile);
if (inputStream == null) {
Assert.assertNotNull("Failed to find sld test file : " + testsldfile, inputStream);
} else {
File f = null;
try {
f = stream2file(inputStream);
try {
testSLDEditor.openFile(f.toURI().toURL());
} catch (NullPointerException nullException) {
nullException.printStackTrace();
StackTraceElement[] stackTraceElements = nullException.getStackTrace();
System.out.println(stackTraceElements[0].getMethodName());
}
f.delete();
} catch (IOException e1) {
e1.printStackTrace();
}
}
// Fields extracted from the SLD file
DataSourceInterface dataSource = DataSourceFactory.createDataSource(null);
Collection<PropertyDescriptor> propertyList = dataSource.getPropertyDescriptorList();
assertEquals(2, propertyList.size());
Map<String, PropertyDescriptor> map = new HashMap<String, PropertyDescriptor>();
for (PropertyDescriptor property : propertyList) {
map.put(property.getName().getLocalPart(), property);
}
AttributeDescriptor name = (AttributeDescriptor) map.get("name");
assertNotNull(name);
GeometryDescriptor geometry = (GeometryDescriptor) map.get("geom");
assertNotNull(geometry);
File tempFolder = Files.createTempDir();
TestVectorTool vectorTool = new TestVectorTool(testSLDEditor);
try {
InputStream gpkgInputStream = VectorToolTest.class.getResourceAsStream("/test/sld_cookbook_polygon.gpkg");
final File gpkgFile = new File(tempFolder, "sld_cookbook_polygon.gpkg");
try (FileOutputStream out = new FileOutputStream(gpkgFile)) {
IOUtils.copy(gpkgInputStream, out);
}
DatabaseConnection databaseConnection = DatabaseConnectionFactory.getConnection(gpkgFile.getAbsolutePath());
DatabaseFeatureClassNode dbFCTreeNode = new DatabaseFeatureClassNode(null, databaseConnection, "sld_cookbook_polygon");
DatabaseConnectionManager.getInstance().addNewConnection(null, databaseConnection);
vectorTool.testSetDataSource(dbFCTreeNode);
dataSource = DataSourceFactory.createDataSource(null);
propertyList = dataSource.getPropertyDescriptorList();
assertEquals(3, propertyList.size());
map.clear();
for (PropertyDescriptor property : propertyList) {
map.put(property.getName().getLocalPart(), property);
}
name = (AttributeDescriptor) map.get("name");
assertNotNull(name);
geometry = (GeometryDescriptor) map.get("geometry");
assertNotNull(geometry);
AttributeDescriptor pop = (AttributeDescriptor) map.get("pop");
assertNotNull(pop);
// Create SLD from geopackage layer
vectorTool.testImportFeatureClass(dbFCTreeNode);
dataSource = DataSourceFactory.createDataSource(null);
propertyList = dataSource.getPropertyDescriptorList();
assertEquals(3, propertyList.size());
map.clear();
for (PropertyDescriptor property : propertyList) {
map.put(property.getName().getLocalPart(), property);
}
name = (AttributeDescriptor) map.get("name");
assertNotNull(name);
geometry = (GeometryDescriptor) map.get("geometry");
assertNotNull(geometry);
pop = (AttributeDescriptor) map.get("pop");
assertNotNull(pop);
// Release locks
dataSource.reset();
} catch (IOException e) {
e.printStackTrace();
fail();
}
// Tidy up so the remaining unit tests are ok
JFrame frame = testSLDEditor.getApplicationFrame();
frame.dispatchEvent(new WindowEvent(frame, WindowEvent.WINDOW_CLOSING));
testSLDEditor = null;
clearDown();
// Delete the shape files we extracted
purgeDirectory(tempFolder);
}
Aggregations