Statistics
| Revision:

svn-gvsig-desktop / tags / v1_1_Build_1005 / extensions / extJDBC / src-test / testPostGIS.java @ 33852

History | View | Annotate | Download (3.43 KB)

1 10468 fjp
2
3
import java.sql.Connection;
4
import java.sql.DriverManager;
5
import java.sql.ResultSet;
6
import java.sql.SQLException;
7
import java.sql.Statement;
8
9
import junit.framework.TestCase;
10
11
import com.hardcode.gdbms.engine.data.driver.DriverException;
12
import com.hardcode.gdbms.engine.values.NumericValue;
13 11935 caballero
import com.iver.cit.gvsig.fmap.drivers.ConnectionFactory;
14
import com.iver.cit.gvsig.fmap.drivers.ConnectionJDBC;
15 10468 fjp
import com.iver.cit.gvsig.fmap.drivers.DBLayerDefinition;
16 11935 caballero
import com.iver.cit.gvsig.fmap.drivers.IConnection;
17 10468 fjp
import com.iver.cit.gvsig.fmap.drivers.jdbc.postgis.PostGisDriver;
18
19
public class testPostGIS extends TestCase {
20
21
        PostGisDriver driver = new PostGisDriver();
22
        ResultSet rsGood = null;
23
24
        protected void setUp() throws Exception {
25
                super.setUp();
26
                try {
27
                        String dburl = "jdbc:postgresql://localhost/latin1";
28
                        String dbuser = "postgres";
29
                        String dbpass = "aquilina";
30 11935 caballero
31 10468 fjp
                        // String dburl = "jdbc:postgresql://192.168.0.217/postgis";
32
                        // String dbuser = "gvsig";
33
                        // String dbpass = "";
34 11935 caballero
35 10468 fjp
                        // String dbtable = "carreteras_lin_5k_t10";
36
                        String dbtable = "provin"; // OJO CON LAS MAYUSCULAS!!!!!!!
37 11935 caballero
38
                        IConnection conn = null;
39 10468 fjp
                        System.out.println("Creating JDBC connection...");
40
                        Class.forName("org.postgresql.Driver");
41 11935 caballero
                        conn = ConnectionFactory.createConnection(dburl, dbuser, dbpass);
42
43
                        ((ConnectionJDBC)conn).getConnection().setAutoCommit(false);
44
45
                        DBLayerDefinition lyrDef = new DBLayerDefinition();
46 10468 fjp
                        lyrDef.setName(dbtable);
47
                        lyrDef.setTableName(dbtable);
48
                        lyrDef.setWhereClause("");
49
                        String[] fields = {"nom_provin", "gid"};
50
                        lyrDef.setFieldNames(fields);
51
                        lyrDef.setFieldGeometry("the_geom");
52
                        lyrDef.setFieldID("gid");
53 11935 caballero
54
                        Statement st = ((ConnectionJDBC)conn).getConnection().createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
55 10468 fjp
                        rsGood = st.executeQuery("SELECT NOM_PROVIN, GID FROM " + dbtable + " ORDER BY GID");
56
                        driver.setData(conn, lyrDef);
57
                }
58
                catch (Exception e){
59
                        e.printStackTrace();
60
                }
61
        }
62
63
        protected void tearDown() throws Exception {
64
                super.tearDown();
65
                driver.close();
66
        }
67
68
        /*
69
         * Test method for
70
         * 'com.iver.cit.gvsig.fmap.drivers.jdbc.postgis.PostGisDriver.getFieldValue(long,
71
         * int)'
72
         */
73
        public void testGetFieldValue() {
74
                int pos1 = 1;
75
                int pos2 = 30;
76
                int pos3 = 15;
77 11935 caballero
78 10468 fjp
                try {
79
                        for (int i=0; i < 40; i++)
80
                        {
81
                                rsGood.absolute(i+1);
82
                                System.out.println("GOOD:" + rsGood.getInt(2) + " " + rsGood.getString(1));
83 11935 caballero
84 10468 fjp
                                String aux = driver.getFieldValue(i, 0).toString();
85
                                int id = ((NumericValue) driver.getFieldValue(i, 1)).intValue();
86 11935 caballero
                                System.out.println(id + " " + aux);
87 10468 fjp
                        }
88
                        rsGood.absolute(pos1);
89
                        String str2 = driver.getFieldValue(pos1-1, 0).toString();
90
                        String str1 = rsGood.getString(1);
91 11935 caballero
92 10468 fjp
                        System.out.println(str1 + " - " + str2);
93 11935 caballero
94 10468 fjp
                        assertEquals(str1, str2);
95 11935 caballero
96
97 10468 fjp
                        rsGood.absolute(pos2);
98
                        str2 = driver.getFieldValue(pos2-1, 0).toString();
99
                        str1 = rsGood.getString(1);
100 11935 caballero
101
102 10468 fjp
                        int id1 = rsGood.getInt(2);
103
                        int id2 = ((NumericValue) driver.getFieldValue(pos2-1, 1)).intValue();
104
                        System.out.println(id1 + " " + str1 + " - " + id2 + " " + str2);
105
                        assertEquals(id1, id2);
106
107 11935 caballero
108 10468 fjp
                        rsGood.absolute(pos3);
109
                        str2 = driver.getFieldValue(pos3-1, 0).toString();
110
                        str1 = rsGood.getString(1);
111 11935 caballero
112 10468 fjp
                        System.out.println(str1 + " - " + str2);
113 11935 caballero
114 10468 fjp
                        assertEquals(str1, str2);
115
116
                } catch (SQLException e) {
117
                        // TODO Auto-generated catch block
118
                        e.printStackTrace();
119
                } catch (DriverException e) {
120
                        // TODO Auto-generated catch block
121
                        e.printStackTrace();
122
                }
123 11935 caballero
124 10468 fjp
        }
125
126
}