@Test public void testExport() throws Exception { GeopkgExport exportCommand = new GeopkgExport(); File geoPkgFile = support.newFile(); String geoPkgFileName = geoPkgFile.getAbsolutePath(); exportCommand.args = Arrays.asList("Points", "Points"); exportCommand.commonArgs.database = geoPkgFileName; exportCommand.run(cli); // Verify GeoPackage DataStore store = store(geoPkgFile); try { assertFeatures(store, pointsType.getTypeName(), points1, points2, points3); } finally { store.dispose(); } deleteGeoPkg(geoPkgFileName); }
private DataStore store(File result) throws InterruptedException, ExecutionException { assertNotNull(result); return support.createDataStore(result); }
@Override public void setUpInternal() throws Exception { Console consoleReader = new Console().disableAnsi(); cli = new GeogigCLI(consoleReader); cli.setGeogig(geogig); // Add points insertAndAdd(points1); insertAndAdd(points2); insertAndAdd(points3); geogig.command(CommitOp.class).call(); // Add lines insertAndAdd(lines1); insertAndAdd(lines2); insertAndAdd(lines3); geogig.command(CommitOp.class).call(); support = new GeoPackageTestSupport(); }
JDBCDataStore store = (JDBCDataStore) store(geoPkgFile); try { assertFeatures(store, pointsType.getTypeName(), points1, points2, points3); assertEquals(1, auditTables.size()); AuditTable table = auditTables.get(0); assertEquals("Points_audit", table.getAuditTable()); assertEquals("Points", table.getFeatureTreePath()); assertEquals("Points", table.getTableName()); assertEquals(headCommitId, table.getCommitId()); } finally { gttx.close(); store.dispose(); deleteGeoPkg(geoPkgFileName);
private void assertFeatures(DataStore store, String typeName, Feature... expected) throws Exception { try (Connection connection = ((JDBCDataStore) store).getConnection(Transaction.AUTO_COMMIT); GeopkgGeogigMetadata metadata = new GeopkgGeogigMetadata(connection)) { Map<String, String> mappings = metadata.getFidMappings(typeName); SimpleFeatureSource source = store.getFeatureSource(typeName); SimpleFeatureCollection features = source.getFeatures(); Map<String, Feature> expectedFeatures; { List<Feature> list = Lists.newArrayList(expected); expectedFeatures = Maps.uniqueIndex(list, (f) -> ((SimpleFeature) f).getID()); } Set<String> actualFeatureIDs = new HashSet<String>(); { try (SimpleFeatureIterator fiter = features.features()) { while (fiter.hasNext()) { SimpleFeature feature = fiter.next(); actualFeatureIDs.add(mappings.get(feature.getID().split("\\.")[1])); } } } Set<String> expectedFeatureIDs = expectedFeatures.keySet(); assertEquals(expectedFeatureIDs, actualFeatureIDs); } }
JDBCDataStore store = (JDBCDataStore) store(geoPkgFile); try { assertFeatures(store, pointsType.getTypeName(), points1, points2, points3); assertEquals(1, auditTables.size()); AuditTable table = auditTables.get(0); assertEquals("Points_audit", table.getAuditTable()); assertEquals("Points", table.getFeatureTreePath()); assertEquals("Points", table.getTableName()); assertEquals(headCommitId, table.getCommitId()); } finally { gttx.close(); store.dispose(); deleteGeoPkg(geoPkgFileName);
private void assertFeatures(DataStore store, String typeName, Feature... expected) throws Exception { try (Connection connection = ((JDBCDataStore) store).getConnection(Transaction.AUTO_COMMIT); GeopkgGeogigMetadata metadata = new GeopkgGeogigMetadata(connection)) { Map<String, String> mappings = metadata.getFidMappings(typeName); SimpleFeatureSource source = store.getFeatureSource(typeName); SimpleFeatureCollection features = source.getFeatures(); Map<String, Feature> expectedFeatures; { List<Feature> list = Lists.newArrayList(expected); expectedFeatures = Maps.uniqueIndex(list, (f) -> ((SimpleFeature) f).getID()); } Set<String> actualFeatureIDs = new HashSet<String>(); { try (SimpleFeatureIterator fiter = features.features()) { while (fiter.hasNext()) { SimpleFeature feature = fiter.next(); actualFeatureIDs.add(mappings.get(feature.getID().split("\\.")[1])); } } } Set<String> expectedFeatureIDs = expectedFeatures.keySet(); assertEquals(expectedFeatureIDs, actualFeatureIDs); } }
@Test public void testExport() throws Exception { GeopkgExport exportCommand = new GeopkgExport(); File geoPkgFile = support.newFile(); String geoPkgFileName = geoPkgFile.getAbsolutePath(); exportCommand.args = Arrays.asList("Points", "Points"); exportCommand.commonArgs.database = geoPkgFileName; exportCommand.run(cli); // Verify GeoPackage DataStore store = store(geoPkgFile); try { assertFeatures(store, pointsType.getTypeName(), points1, points2, points3); } finally { store.dispose(); } deleteGeoPkg(geoPkgFileName); }
private DataStore store(File result) throws InterruptedException, ExecutionException { assertNotNull(result); return support.createDataStore(result); }
@Override public void setUpInternal() throws Exception { Console consoleReader = new Console().disableAnsi(); cli = new GeogigCLI(consoleReader); cli.setGeogig(geogig); // Add points insertAndAdd(points1); insertAndAdd(points2); insertAndAdd(points3); geogig.command(CommitOp.class).call(); // Add lines insertAndAdd(lines1); insertAndAdd(lines2); insertAndAdd(lines3); geogig.command(CommitOp.class).call(); support = new GeoPackageTestSupport(); }
@Test public void testExportToFileThatAlreadyExists() throws Exception { GeopkgExport exportCommand = new GeopkgExport(); File geoPkgFile = support.newFile(); String geoPkgFileName = geoPkgFile.getAbsolutePath(); exportCommand.args = Arrays.asList("WORK_HEAD:Points", "Points"); exportCommand.commonArgs.database = geoPkgFileName; exportCommand.run(cli); exportCommand.args = Arrays.asList("WORK_HEAD:Lines", "Lines"); exportCommand.commonArgs.database = geoPkgFileName; exportCommand.run(cli); // Verify GeoPackage DataStore store = store(geoPkgFile); try { assertFeatures(store, pointsType.getTypeName(), points1, points2, points3); assertFeatures(store, linesType.getTypeName(), lines1, lines2, lines3); } finally { store.dispose(); } deleteGeoPkg(geoPkgFileName); }
@Test public void testExportToFileThatAlreadyExists() throws Exception { GeopkgExport exportCommand = new GeopkgExport(); File geoPkgFile = support.newFile(); String geoPkgFileName = geoPkgFile.getAbsolutePath(); exportCommand.args = Arrays.asList("WORK_HEAD:Points", "Points"); exportCommand.commonArgs.database = geoPkgFileName; exportCommand.run(cli); exportCommand.args = Arrays.asList("WORK_HEAD:Lines", "Lines"); exportCommand.commonArgs.database = geoPkgFileName; exportCommand.run(cli); // Verify GeoPackage DataStore store = store(geoPkgFile); try { assertFeatures(store, pointsType.getTypeName(), points1, points2, points3); assertFeatures(store, linesType.getTypeName(), lines1, lines2, lines3); } finally { store.dispose(); } deleteGeoPkg(geoPkgFileName); }
@Test public void testExportToFileThatAlreadyExistsWithOverwrite() throws Exception { GeopkgExport exportCommand = new GeopkgExport(); File geoPkgFile = support.newFile(); String geoPkgFileName = geoPkgFile.getAbsolutePath(); exportCommand.args = Arrays.asList("Points", "Points"); exportCommand.commonArgs.database = geoPkgFileName; exportCommand.run(cli); // Write lines to the old points table exportCommand.args = Arrays.asList("Lines", "Points"); exportCommand.commonArgs.database = geoPkgFileName; exportCommand.overwrite = true; exportCommand.run(cli); // Verify GeoPackage DataStore store = store(geoPkgFile); try { assertFeatures(store, pointsType.getTypeName(), lines1, lines2, lines3); } finally { store.dispose(); } deleteGeoPkg(geoPkgFileName); }
@Test public void testExportToFileThatAlreadyExistsWithOverwrite() throws Exception { GeopkgExport exportCommand = new GeopkgExport(); File geoPkgFile = support.newFile(); String geoPkgFileName = geoPkgFile.getAbsolutePath(); exportCommand.args = Arrays.asList("Points", "Points"); exportCommand.commonArgs.database = geoPkgFileName; exportCommand.run(cli); // Write lines to the old points table exportCommand.args = Arrays.asList("Lines", "Points"); exportCommand.commonArgs.database = geoPkgFileName; exportCommand.overwrite = true; exportCommand.run(cli); // Verify GeoPackage DataStore store = store(geoPkgFile); try { assertFeatures(store, pointsType.getTypeName(), lines1, lines2, lines3); } finally { store.dispose(); } deleteGeoPkg(geoPkgFileName); }