package osm.jp.postgis; import java.io.File; import java.io.IOException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.helpers.DefaultHandler; import jp.co.areaweb.tools.database.DatabaseTool; import static org.hamcrest.CoreMatchers.is; import org.junit.After; import org.junit.AfterClass; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertThat; import static org.junit.Assert.fail; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.xml.sax.Attributes; import osm.jp.api.Coverage; import osm.jp.coverage.busstop.DbBusstop; /** * database connect test. * `gisdb.properties` Postgresql:PostGIS */ public class UnMappedTest { static Connection conPost = null; @BeforeClass public static void setUpClass() throws ClassNotFoundException, SQLException, IOException { // postgresql `gisdb.properties` // postgresql - PostGIS : gisdb conPost = DatabaseTool.openDb("gisdb"); } @AfterClass public static void tearDownClass() throws SQLException { conPost.close(); } @Before public void setUp() { } @After public void tearDown() { } @Test public void testDbPropertiesName() { assertThat(Coverage.DB_PORP_GISDB, is("gisdb")); } @Test public void getBusstopTable() { String tableName = DbBusstop.TABLE_NAME; assertThat(tableName, is("busstop")); osm.jp.coverage.busstop.ToPostgis model = new osm.jp.coverage.busstop.ToPostgis(); String sql = model.items.getPostSqlStr(tableName); assertThat(sql, is("SELECT gmlid,area,fixed FROM t_busstop ORDER BY area, gmlid")); try (PreparedStatement ps8 = conPost.prepareStatement(sql)) { try (ResultSet rset8 = ps8.executeQuery()) { while (rset8.next()) { model.items.setPostResuit(rset8); String osm_node = model.items.getValue(); System.out.println(osm_node); } } } catch(Exception e) { fail(e.toString()); } } @Test public void unMappedBusstop() { check("busstop"); } @Test public void unMappedFuel() { check("FUEL"); } @Test public void unMappedPolice() { check("POLICE"); } @Test public void unMappedPostoffice() { check("POSTOFFICE"); } @SuppressWarnings("UseSpecificCatch") void check(String dbname) { File kmz = null; try { kmz = (new UnMapped(dbname)) .getKmz(35.4341254D,139.408969D, 5.0D); } catch(Exception e) { fail(e.toString()); } // 出力結果のチェック assertNotNull(kmz); assertThat(kmz.exists(), is(true)); assertThat(kmz.isFile(), is(true)); assertThat(kmz.getName(), is(dbname+".kmz")); } class KmlSaxSimpleReader extends DefaultHandler { @Override public void startDocument() { //System.out.println("[11] ドキュメント開始"); } @Override public void startElement(String uri, String localName, String qName, Attributes attributes) { //System.out.println("[21] 要素開始 = " + qName); } @Override public void characters(char[] ch, int offset, int length) { //System.out.println("[31] テキストデータ = " + new String(ch, offset, length)); } @Override public void endElement(String uri, String localName, String qName) { //System.out.println("[41] 要素終了 = " + qName); } @Override public void endDocument(){//[50] //System.out.println("[51] ドキュメント終了"); } } }