Newer
Older
osmCoverage / test / osm / jp / postgis / UnMappedTest.java
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 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 {
            (new UnMapped(dbname)).createKmz(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] ドキュメント終了");
        }
    }
}