use of com.sldeditor.datasource.extension.filesystem.node.file.FileTreeNode in project sldeditor by robward-scisys.
the class VectorToolTest method testVectorToolFileDataSource.
/**
* Test method for {@link com.sldeditor.tool.vector.VectorTool#VectorTool(com.sldeditor.common.SLDEditorInterface)}.
*/
@Test
public void testVectorToolFileDataSource() {
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();
}
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 {
// Set a shape file as a data source - that matches the SLD
File matchingShpFile = extractShapeFile(tempFolder, "/test/sld_cookbook_polygon.zip");
FileTreeNode fileTreeNode = new FileTreeNode(matchingShpFile.getParentFile(), matchingShpFile.getName());
vectorTool.testSetDataSource(fileTreeNode);
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("the_geom");
assertNotNull(geometry);
AttributeDescriptor pop = (AttributeDescriptor) map.get("pop");
assertNotNull(pop);
// Set a shape file as a data source - that does not match the SLD
File nonMatchingShpFile = extractShapeFile(tempFolder, "/test/states.zip");
FileTreeNode fileTreeNode2 = new FileTreeNode(nonMatchingShpFile.getParentFile(), nonMatchingShpFile.getName());
vectorTool.testSetDataSource(fileTreeNode2);
dataSource = DataSourceFactory.createDataSource(null);
propertyList = dataSource.getPropertyDescriptorList();
assertEquals(23, propertyList.size());
map.clear();
for (PropertyDescriptor property : propertyList) {
map.put(property.getName().getLocalPart(), property);
}
name = (AttributeDescriptor) map.get("name");
assertNull(name);
geometry = (GeometryDescriptor) map.get("the_geom");
assertNotNull(geometry);
pop = (AttributeDescriptor) map.get("pop");
assertNull(pop);
assertEquals(1, testAttribute.getMissingFieldList().size());
assertEquals("name", testAttribute.getMissingFieldList().get(0));
// Create SLD from shape file
vectorTool.testImportFile(fileTreeNode);
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("the_geom");
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);
}
use of com.sldeditor.datasource.extension.filesystem.node.file.FileTreeNode in project sldeditor by robward-scisys.
the class YSLDToolTest method testSupports.
/**
* Test which file types the tool supports.
*/
@Test
public void testSupports() {
YSLDTool tool = new YSLDTool();
assertFalse(tool.supports(null, null, null));
File testFile1 = null;
File testFile2 = null;
File testFile3 = null;
try {
testFile1 = File.createTempFile("invalid", ".tst");
testFile2 = File.createTempFile("valid", ".sld");
testFile3 = File.createTempFile("valid", ".ysld");
} catch (IOException e1) {
e1.printStackTrace();
}
// Try with invalid file
try {
List<NodeInterface> nodeTypeList = new ArrayList<NodeInterface>();
assertNotNull(testFile1);
nodeTypeList.add(new FileTreeNode(testFile1.getParentFile(), testFile1.getName()));
assertFalse(tool.supports(null, nodeTypeList, null));
} catch (SecurityException | FileNotFoundException e) {
e.printStackTrace();
}
// Try with valid sld file
try {
List<NodeInterface> nodeTypeList = new ArrayList<NodeInterface>();
nodeTypeList.add(new FileTreeNode(testFile2.getParentFile(), testFile2.getName()));
assertTrue(tool.supports(null, nodeTypeList, null));
} catch (SecurityException | FileNotFoundException e) {
e.printStackTrace();
}
// Try with valid ysld file
try {
List<NodeInterface> nodeTypeList = new ArrayList<NodeInterface>();
nodeTypeList.add(new FileTreeNode(testFile3.getParentFile(), testFile3.getName()));
assertTrue(tool.supports(null, nodeTypeList, null));
} catch (SecurityException | FileNotFoundException e) {
e.printStackTrace();
}
// Try with several files
try {
List<NodeInterface> nodeTypeList = new ArrayList<NodeInterface>();
nodeTypeList.add(new FileTreeNode(testFile1.getParentFile(), testFile1.getName()));
nodeTypeList.add(new FileTreeNode(testFile2.getParentFile(), testFile2.getName()));
nodeTypeList.add(new FileTreeNode(testFile3.getParentFile(), testFile3.getName()));
assertFalse(tool.supports(null, nodeTypeList, null));
} catch (SecurityException | FileNotFoundException e) {
e.printStackTrace();
}
testFile1.delete();
testFile2.delete();
testFile3.delete();
}
use of com.sldeditor.datasource.extension.filesystem.node.file.FileTreeNode in project sldeditor by robward-scisys.
the class DatabaseConnectionToolTest method testDatabaseConnectionTool.
/**
* Test method for
* {@link com.sldeditor.tool.databaseconnection.DatabaseConnectionTool#DatabaseConnectionTool(com.sldeditor.tool.databaseconnection.DatabaseConnectStateInterface)}.
*/
@Test
public void testDatabaseConnectionTool() {
TestDatabaseConnectState state = new TestDatabaseConnectState();
TestDatabaseConnectionTool testObj = new TestDatabaseConnectionTool(state);
testObj.setSelectedItems(null, null);
List<NodeInterface> nodeTypeList = new ArrayList<NodeInterface>();
DatabaseConnection connection = DatabaseConnectionFactory.createGeoPackage();
nodeTypeList.add(new DatabaseNode(new DatabaseInput(ToolManager.getInstance()), connection));
File parent = new File("");
String filename = "test.gpkg";
FileTreeNode fileTreeNode = null;
try {
fileTreeNode = new FileTreeNode(parent, filename);
fileTreeNode.setFileCategory(FileTreeNodeTypeEnum.DATABASE);
nodeTypeList.add(fileTreeNode);
} catch (SecurityException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
testObj.setSelectedItems(nodeTypeList, null);
testObj.populateComplete(null);
assertNotNull(testObj.getPanel());
List<Class<?>> uniqueNodeTypeList = new ArrayList<Class<?>>();
List<SLDDataInterface> sldDataList = null;
assertFalse(testObj.supports(uniqueNodeTypeList, nodeTypeList, sldDataList));
uniqueNodeTypeList.add(String.class);
assertTrue(testObj.supports(uniqueNodeTypeList, nodeTypeList, sldDataList));
nodeTypeList.remove(0);
assertTrue(testObj.supports(uniqueNodeTypeList, nodeTypeList, sldDataList));
testObj.testConnect();
testObj.testDisconnect();
}
Aggregations