public void delete() throws IOException { for (ImportTask task : this.getTasks()) { if (task.getData() != null) { task.getData().cleanup(); } } }
@Test public void testImportDatabaseIntoDatabase() throws Exception { File dir = unpack("h2/cookbook.zip"); DataStoreInfo ds = createH2DataStore("gs", "cookbook"); Map params = new HashMap(); params.put(H2DataStoreFactory.DBTYPE.key, "h2"); params.put(H2DataStoreFactory.DATABASE.key, new File(dir, "cookbook").getAbsolutePath()); ImportContext context = importer.createContext(new Database(params), ds); assertEquals(3, context.getTasks().size()); }
@Test public void testCreateContextSingleFile() throws Exception { File dir = unpack("shape/archsites_epsg_prj.zip"); SpatialFile file = new SpatialFile(new File(dir, "archsites.shp")); file.prepare(); ImportContext context = importer.createContext(file); assertEquals(1, context.getTasks().size()); ImportTask task = context.getTasks().get(0); assertEquals(file, task.getData()); }
@Test public void testCreateContextDirectoryHetero() throws Exception { File dir = unpack("shape/archsites_epsg_prj.zip"); unpack("geotiff/EmissiveCampania.tif.bz2", dir); Directory d = new Directory(dir); ImportContext context = importer.createContext(d); assertEquals(2, context.getTasks().size()); // cannot ensure order of tasks due to hashing HashSet files = new HashSet(); files.add(context.getTasks().get(0).getData()); files.add(context.getTasks().get(1).getData()); assertTrue(files.containsAll(d.getFiles())); }
@Test public void testCreateContextDirectoryHomo() throws Exception { File dir = unpack("shape/archsites_epsg_prj.zip"); unpack("shape/bugsites_esri_prj.tar.gz", dir); Directory d = new Directory(dir); ImportContext context = importer.createContext(d); assertEquals(2, context.getTasks().size()); ImportTask task = context.getTasks().get(0); assertEquals(d.part("archsites"), task.getData()); task = context.getTasks().get(1); assertEquals(d.part("bugsites"), task.getData()); }
@Test public void testImportShapefilesWithExtraFiles() throws Exception { File dir = tmpDir(); unpack("shape/archsites_epsg_prj.zip", dir); // make some 'extra' files new File(dir, "archsites.sbn").createNewFile(); new File(dir, "archsites.sbx").createNewFile(); new File(dir, "archsites.shp.xml").createNewFile(); ImportContext context = importer.createContext(new Directory(dir)); assertEquals(1, context.getTasks().size()); ImportTask task = context.getTasks().get(0); assertEquals(ImportTask.State.READY, task.getState()); assertEquals("archsites", task.getLayer().getResource().getName()); }
@Test public void testImportUnknownFile() throws Exception { File dir = new File("./src/test/resources/org/geoserver/importer/test-data/random"); ImportContext context = importer.createContext(new Directory(dir)); assertEquals(1, context.getTasks().size()); ImportTask task = context.getTasks().get(0); assertEquals(ImportTask.State.NO_FORMAT, task.getState()); assertNull(task.getData().getFormat()); }
@Test public void testImportUnknownFileIndirect() throws Exception { DataStoreInfo ds = createH2DataStore(null, "foo"); File dir = new File("./src/test/resources/org/geoserver/importer/test-data/random"); ImportContext context = importer.createContext(new Directory(dir), ds); assertEquals(1, context.getTasks().size()); ImportTask task = context.getTasks().get(0); assertEquals(ImportTask.State.NO_FORMAT, task.getState()); assertNull(task.getData().getFormat()); }
@Test public void testIllegalNames() throws Exception { File dir = unpack("shape/archsites_epsg_prj.zip"); for (File f : dir.listFiles()) { String ext = FilenameUtils.getExtension(f.getName()); String base = FilenameUtils.getBaseName(f.getName()); f.renameTo(new File(dir, "1-." + ext)); } ImportContext imp = importer.createContext(new Directory(dir)); importer.run(imp); ImportTask task = imp.getTasks().get(0); assertEquals("a_1_", task.getLayer().getName()); assertEquals("a_1_", task.getLayer().getResource().getName()); }
@Test public void testCreateContextIgnoreHidden() throws Exception { File dir = unpack("shape/archsites_epsg_prj.zip"); FileUtils.touch(new File(dir, ".DS_Store")); ImportContext context = importer.createContext(new Directory(dir)); assertEquals(1, context.getTasks().size()); }
@Test public void testCreateContextFromArchive() throws Exception { File file = file("shape/archsites_epsg_prj.zip"); Archive arch = new Archive(file); ImportContext context = importer.createContext(arch); assertEquals(1, context.getTasks().size()); }
@Test public void testSimpleMosaic() throws Exception { File dir = unpack("mosaic/bm.zip"); ImportContext context = importer.createContext(new Mosaic(dir)); assertEquals(1, context.getTasks().size()); ImportTask task = context.getTasks().get(0); assertTrue(task.getData() instanceof Mosaic); assertTrue(task.getData().getFormat() instanceof MosaicFormat); importer.run(context); runChecks(dir.getName()); }
private void checkNoErrors(ImportContext imp) { for (ImportTask task : imp.getTasks()) { assertNull(task.getError()); assertEquals(State.COMPLETE, task.getState()); } }
StyleInfo writeStyleAndImport(String sld, String filename, File dir) throws IOException { FileUtils.write(new File(dir, filename), sld); ImportContext imp = importer.createContext(new Directory(dir)); importer.run(imp); assertEquals(ImportContext.State.COMPLETE, imp.getState()); checkNoErrors(imp); return getCatalog().getStyle(imp.getTasks().get(0).getLayer().getDefaultStyle().getId()); }
@Test public void testImportRemoteDataFromZip() throws Exception { URL resource = ImporterTestSupport.class.getResource("test-data/shape/archsites_epsg_prj.zip"); ImportContext context = importer.createContext(new RemoteData(resource.toExternalForm())); assertEquals(1, context.getTasks().size()); ImportTask task = context.getTasks().get(0); assertEquals(ImportTask.State.READY, task.getState()); assertEquals("archsites", task.getLayer().getResource().getName()); importer.run(context); Catalog cat = getCatalog(); assertNotNull(cat.getLayerByName("archsites")); assertEquals(ImportTask.State.COMPLETE, task.getState()); runChecks("archsites"); }
@Test public void testImportShapefile() throws Exception { File dir = unpack("shape/archsites_epsg_prj.zip"); ImportContext context = importer.createContext(new SpatialFile(new File(dir, "archsites.shp"))); assertEquals(1, context.getTasks().size()); ImportTask task = context.getTasks().get(0); assertEquals(ImportTask.State.READY, task.getState()); assertEquals("archsites", task.getLayer().getResource().getName()); importer.run(context); Catalog cat = getCatalog(); assertNotNull(cat.getLayerByName("archsites")); assertEquals(ImportTask.State.COMPLETE, task.getState()); runChecks("archsites"); }
@Test public void testImportNameClash() throws Exception { File dir = unpack("shape/archsites_epsg_prj.zip"); ImportContext context = importer.createContext(new SpatialFile(new File(dir, "archsites.shp"))); importer.run(context); Catalog cat = getCatalog(); assertNotNull(cat.getLayerByName("archsites")); runChecks("archsites"); context = importer.createContext(new SpatialFile(new File(dir, "archsites.shp"))); importer.run(context); assertEquals("archsites0", context.getTasks().get(0).getLayer().getName()); runChecks("archsites0"); }
@Test public void testImportRemoteDataFromDirectory() throws Exception { File dir = unpack("shape/archsites_epsg_prj.zip"); ImportContext context = importer.createContext(new RemoteData(dir.getCanonicalPath())); assertEquals(1, context.getTasks().size()); ImportTask task = context.getTasks().get(0); assertEquals(ImportTask.State.READY, task.getState()); assertEquals("archsites", task.getLayer().getResource().getName()); importer.run(context); Catalog cat = getCatalog(); assertNotNull(cat.getLayerByName("archsites")); assertEquals(ImportTask.State.COMPLETE, task.getState()); runChecks("archsites"); }
@Test public void testDirectImport() throws Exception { Database db = new Database(getConnectionParams()); ImportContext context = importer.createContext(db); assertEquals(ImportContext.State.PENDING, context.getState()); assertEquals(1, context.getTasks().size()); importer.run(context); runChecks("gs:" + tableName("widgets")); }
@Test public void testGeoJSONImport() throws Exception { DataStoreInfo h2 = createH2DataStore(getCatalog().getDefaultWorkspace().getName(), "jsontest"); File dir = unpack("geojson/point.json.zip"); ImportContext imp = importer.createContext(new SpatialFile(new File(dir, "point.json")), h2); assertEquals(1, imp.getTasks().size()); assertEquals(ImportTask.State.READY, imp.task(0).getState()); importer.run(imp); assertEquals(ImportContext.State.COMPLETE, imp.getState()); checkNoErrors(imp); runChecks("point"); }