Revision 1345

View differences:

tags/org.gvsig.postgresql-2.0.258/org.gvsig.postgresql.provider/pom.xml
1
<?xml version="1.0" encoding="UTF-8"?>
2

  
3
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4

  
5
  <modelVersion>4.0.0</modelVersion>
6
  <artifactId>org.gvsig.postgresql.provider</artifactId>
7
  <packaging>jar</packaging>
8
  <name>${project.artifactId}</name>
9
  <description>DAL provider for PostgeSQL files</description>
10
  <parent>
11
    <groupId>org.gvsig</groupId>
12
    <artifactId>org.gvsig.postgresql</artifactId>
13
    <version>2.0.258</version>
14
  </parent>
15
  <dependencies>
16
    <dependency>
17
      <groupId>com.googlecode.log4jdbc</groupId>
18
      <artifactId>log4jdbc</artifactId>
19
      <scope>compile</scope>
20
    </dependency>
21
    <dependency>
22
      <groupId>org.gvsig</groupId>
23
      <artifactId>org.gvsig.tools.lib</artifactId>
24
      <scope>compile</scope>
25
    </dependency>
26
    <dependency>
27
      <groupId>org.gvsig</groupId>
28
      <artifactId>org.gvsig.projection.api</artifactId>
29
      <scope>compile</scope>
30
    </dependency>
31
    <dependency>
32
      <groupId>org.gvsig</groupId>
33
      <artifactId>org.gvsig.fmap.dal.api</artifactId>
34
      <scope>compile</scope>
35
    </dependency>
36
    
37
    <dependency>
38
      <groupId>org.gvsig</groupId>
39
      <artifactId>org.gvsig.fmap.dal.db.jdbc</artifactId>
40
      <scope>compile</scope>
41
    </dependency>
42

  
43
    <dependency>
44
      <groupId>org.gvsig</groupId>
45
      <artifactId>org.gvsig.fmap.dal.db.jdbc</artifactId>
46
      <scope>test</scope>
47
      <type>test-jar</type>
48
    </dependency>
49

  
50
    <dependency>
51
      <groupId>org.gvsig</groupId>
52
      <artifactId>org.gvsig.fmap.dal.db.lib</artifactId>
53
      <scope>compile</scope>
54
    </dependency>
55
    
56
    <dependency>
57
      <groupId>org.gvsig</groupId>
58
      <artifactId>org.gvsig.fmap.dal.spi</artifactId>
59
      <scope>compile</scope>
60
    </dependency>
61
    <dependency>
62
      <groupId>org.gvsig</groupId>
63
      <artifactId>org.gvsig.metadata.lib.basic.api</artifactId>
64
      <scope>compile</scope>
65
    </dependency>
66
    <dependency>
67
      <groupId>org.gvsig</groupId>
68
      <artifactId>org.gvsig.fmap.geometry.api</artifactId>
69
      <scope>compile</scope>
70
    </dependency>
71
    <!--
72
    <dependency>
73
        <groupId>org.gvsig</groupId>
74
        <artifactId>org.gvsig.fmap.geometry.operation</artifactId>
75
        <scope>compile</scope>
76
    </dependency>
77
    -->
78
    <dependency>
79
      <groupId>org.gvsig</groupId>
80
      <artifactId>org.gvsig.timesupport.lib.api</artifactId>
81
      <scope>compile</scope>
82
    </dependency>  
83
    <dependency>
84
      <groupId>org.gvsig</groupId>
85
      <artifactId>org.gvsig.utils</artifactId>
86
      <scope>compile</scope>
87
    </dependency>
88
    <dependency>
89
      <groupId>org.postgresql</groupId>
90
      <artifactId>postgresql</artifactId>
91
      <scope>compile</scope>
92
    </dependency>
93
    <dependency>
94
        <groupId>org.apache.commons</groupId>
95
        <artifactId>commons-dbcp2</artifactId>
96
    </dependency>
97
    <dependency>
98
        <groupId>org.apache.commons</groupId>
99
        <artifactId>commons-pool2</artifactId>
100
    </dependency>
101
    <dependency>
102
      <groupId>commons-collections</groupId>
103
      <artifactId>commons-collections</artifactId>
104
      <scope>compile</scope>
105
    </dependency>
106

  
107

  
108
    <!-- TESTS -->
109
    <dependency>
110
      <groupId>org.gvsig</groupId>
111
      <artifactId>org.gvsig.tools.lib</artifactId>
112
      <type>test-jar</type>
113
      <scope>test</scope>
114
    </dependency>
115
    <dependency>
116
      <groupId>org.gvsig</groupId>
117
      <artifactId>org.gvsig.compat.se</artifactId>
118
      <scope>test</scope>
119
    </dependency>
120
    <dependency>
121
      <groupId>org.gvsig</groupId>
122
      <artifactId>org.gvsig.fmap.dal.impl</artifactId>
123
      <scope>test</scope>
124
    </dependency>
125
    <dependency>
126
      <groupId>org.gvsig</groupId>
127
      <artifactId>org.gvsig.fmap.dal.file.csv</artifactId>
128
      <scope>test</scope>
129
    </dependency>
130
    <dependency>
131
      <groupId>org.gvsig</groupId>
132
      <artifactId>org.gvsig.tools.util.impl</artifactId>
133
      <scope>test</scope>
134
    </dependency>
135
    <dependency>
136
      <groupId>org.gvsig</groupId>
137
      <artifactId>org.gvsig.tools.swing.impl</artifactId>
138
      <scope>test</scope>
139
    </dependency>
140
    <dependency>
141
      <groupId>org.gvsig</groupId>
142
      <artifactId>${org.gvsig.fmap.geometry.impl}</artifactId>
143
      <scope>test</scope>
144
    </dependency>    
145
    <dependency>
146
      <groupId>org.gvsig</groupId>
147
      <artifactId>org.gvsig.expressionevaluator.geometry.lib.impl</artifactId>
148
      <scope>test</scope>
149
    </dependency>    
150
    <dependency>
151
      <groupId>org.gvsig</groupId>
152
      <artifactId>${org.gvsig.proj.lib.impl}</artifactId>
153
      <scope>test</scope>
154
    </dependency>
155
    <dependency>
156
      <groupId>org.gvsig</groupId>
157
      <artifactId>org.gvsig.projection.cresques.impl</artifactId>
158
      <scope>test</scope>
159
    </dependency>
160
    <dependency>
161
      <groupId>org.gvsig</groupId>
162
      <artifactId>org.gvsig.timesupport.lib.impl</artifactId>
163
      <scope>test</scope>
164
    </dependency>
165
    <dependency>
166
      <groupId>org.gvsig</groupId>
167
      <artifactId>org.gvsig.metadata.lib.basic.impl</artifactId>
168
      <scope>test</scope>
169
    </dependency>      
170
    
171
    
172
    <dependency>
173
      <artifactId>junit</artifactId>
174
      <groupId>junit</groupId>
175
      <scope>test</scope>
176
    </dependency>
177
  </dependencies>
178

  
179
  <build>
180
    <plugins>
181

  
182
      <!-- Skip test execution ? -->
183
      <plugin>
184
        <groupId>org.apache.maven.plugins</groupId>
185
        <artifactId>maven-surefire-plugin</artifactId>
186
        <configuration>
187
          <skipTests>false</skipTests>
188
        </configuration>
189
      </plugin>
190
        
191
      <!-- Skip test compilation ? -->
192
      <plugin>
193
        <groupId>org.apache.maven.plugins</groupId>
194
        <artifactId>maven-compiler-plugin</artifactId>
195
        <executions>
196
          <execution>
197
            <id>default-testCompile</id>
198
            <phase>process-test-sources</phase>
199
            <goals>
200
              <goal>testCompile</goal>
201
            </goals>
202
            <configuration>
203
              <skip>false</skip>
204
            </configuration>
205
          </execution>
206
        </executions>
207
      </plugin>
208

  
209
      <!-- Ignore test execution failure ? -->
210
      <plugin>
211
        <groupId>org.apache.maven.plugins</groupId>
212
        <artifactId>maven-surefire-plugin</artifactId>
213
        <configuration>
214
          <testFailureIgnore>false</testFailureIgnore>
215
        </configuration>
216
      </plugin>
217

  
218
    </plugins>
219
  </build>
220

  
221
</project>
tags/org.gvsig.postgresql-2.0.258/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/operations/usecases/arena2/TestMultipleExpansionOfCalculatedField.java
1
package org.gvsig.postgresql.dal.operations.usecases.arena2;
2

  
3
import org.gvsig.fmap.dal.store.jdbc2.AbstractTestUtils;
4
import org.gvsig.fmap.dal.store.jdbc2.operations.usecases.arena2.AbstractTestMultipleExpansionOfCalculatedField;
5
import org.gvsig.postgresql.dal.TestUtilsPostgreSQL;
6

  
7
@SuppressWarnings("UseSpecificCatch")
8
public class TestMultipleExpansionOfCalculatedField extends AbstractTestMultipleExpansionOfCalculatedField {
9

  
10
    public TestMultipleExpansionOfCalculatedField(String testName) {
11
        super(testName);
12
    }
13

  
14
    @Override
15
    protected AbstractTestUtils createUtils() {
16
        return new TestUtilsPostgreSQL();
17
    }
18
    
19
    @Override
20
    public void testMultipleExpansionOfCalculatedField() throws Exception {
21
       super.testMultipleExpansionOfCalculatedField();
22
    }
23

  
24
}
tags/org.gvsig.postgresql-2.0.258/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/operations/sql/TestUpdateTableStatistics.java
1
package org.gvsig.postgresql.dal.operations.sql;
2

  
3
import java.util.List;
4
import junit.framework.TestCase;
5
import org.gvsig.fmap.dal.feature.FeatureStore;
6
import org.gvsig.fmap.dal.feature.FeatureType;
7
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
8
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory;
9
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
10
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
11
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.UpdateTableStatisticsOperation;
12
import org.gvsig.postgresql.dal.TestUtils;
13
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
14
import org.slf4j.Logger;
15
import org.slf4j.LoggerFactory;
16

  
17
public class TestUpdateTableStatistics extends TestCase {
18

  
19
  private static final Logger LOGGER = LoggerFactory.getLogger(TestUpdateTableStatistics.class);
20

  
21
  public TestUpdateTableStatistics(String testName) {
22
    super(testName);
23
  }
24

  
25
  @Override
26
  protected void setUp() throws Exception {
27
    super.setUp();
28
    new DefaultLibrariesInitializer().fullInitialize();
29
  }
30

  
31
  @Override
32
  protected void tearDown() throws Exception {
33
    super.tearDown();
34
  }
35

  
36
  // TODO add test methods here. The name must begin with 'test'. For example:
37
  // public void testHello() {}
38
  
39
  public void testUpdateTableStatistics() throws Exception {
40
    JDBCHelper helper = TestUtils.getJDBCHelper();
41
    JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
42
    OperationsFactory operations = helper.getOperations();
43

  
44
    List<String> expectedSQLs = TestUtils.getSQLs("updateTableStatistics.sql");
45
    
46
    FeatureStore sourceStore = TestUtils.openSourceStore1();
47

  
48
    TableReference table = operations.createTableReference(
49
            "dbtest", 
50
            sqlbuilder.default_schema(), 
51
            "test", 
52
            null
53
    );
54
    FeatureType featureType = sourceStore.getDefaultFeatureType();
55
    UpdateTableStatisticsOperation updateTableStatistics = operations.createUpdateTableStatistics(
56
            table
57
    );
58
    
59
    List<String> SQLs = updateTableStatistics.getSQLs();
60
    assertEquals("UpdateTableStatistics num. SQLs", expectedSQLs.size(), SQLs.size());
61
    for (int i = 0; i < expectedSQLs.size(); i++) {
62
      assertEquals("UpdateTableStatistics SQL "+i, expectedSQLs.get(i), SQLs.get(i));
63
    }
64
  }
65

  
66
}
tags/org.gvsig.postgresql-2.0.258/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/operations/sql/TestJsonValue.java
1
package org.gvsig.postgresql.dal.operations.sql;
2

  
3
import org.gvsig.fmap.dal.store.jdbc2.AbstractTestJsonValue;
4
import org.gvsig.fmap.dal.store.jdbc2.AbstractTestUtils;
5
import org.gvsig.postgresql.dal.TestUtilsPostgreSQL;
6
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
7
import org.slf4j.Logger;
8
import org.slf4j.LoggerFactory;
9

  
10
public class TestJsonValue extends AbstractTestJsonValue {
11

  
12
    private static final Logger LOGGER = LoggerFactory.getLogger(TestJsonValue.class);
13

  
14
    public TestJsonValue(String testName) {
15
        super(testName);
16
    }
17

  
18
    @Override
19
    protected void setUp() throws Exception {
20
        super.setUp();
21
        new DefaultLibrariesInitializer().fullInitialize();
22
    }
23

  
24
    @Override
25
    protected void tearDown() throws Exception {
26
        super.tearDown();
27
    }
28

  
29
    @Override
30
    protected AbstractTestUtils createUtils() {
31
        return new TestUtilsPostgreSQL();
32
    }
33
    
34
    public void testJsonValue() throws Exception {
35
        super.testJsonValue();
36
    }
37
    
38

  
39
}
tags/org.gvsig.postgresql-2.0.258/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/operations/sql/TestAppend.java
1
package org.gvsig.postgresql.dal.operations.sql;
2

  
3
import java.util.ArrayList;
4
import java.util.List;
5
import junit.framework.TestCase;
6
import org.gvsig.fmap.dal.DataTypes;
7
import org.gvsig.fmap.dal.feature.Feature;
8
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
9
import org.gvsig.fmap.dal.feature.FeatureStore;
10
import org.gvsig.fmap.dal.feature.FeatureType;
11
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
12
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory;
13
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
14
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
15
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.AppendOperation;
16
import org.gvsig.postgresql.dal.TestUtils;
17
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
18
import org.slf4j.Logger;
19
import org.slf4j.LoggerFactory;
20

  
21
public class TestAppend extends TestCase {
22

  
23
  private static final Logger LOGGER = LoggerFactory.getLogger(TestAppend.class);
24

  
25
  public TestAppend(String testName) {
26
    super(testName);
27
  }
28

  
29
  @Override
30
  protected void setUp() throws Exception {
31
    super.setUp();
32
    new DefaultLibrariesInitializer().fullInitialize();
33
  }
34

  
35
  @Override
36
  protected void tearDown() throws Exception {
37
    super.tearDown();
38
  }
39

  
40
  // TODO add test methods here. The name must begin with 'test'. For example:
41
  // public void testHello() {}
42
  
43
  public void testAppend() throws Exception {
44
    JDBCHelper helper = TestUtils.getJDBCHelper();
45
    JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
46
    OperationsFactory operations = helper.getOperations();
47

  
48
    List<String> expectedSQLs = TestUtils.getSQLs("append.sql");
49
    
50
    FeatureStore sourceStore = TestUtils.openSourceStore1();
51

  
52
    TableReference table = operations.createTableReference(
53
            "dbtest", 
54
            sqlbuilder.default_schema(), 
55
            "test", 
56
            null
57
    );
58
    FeatureType featureType = sourceStore.getDefaultFeatureType();
59
    AppendOperation append = operations.createAppend(
60
            table,
61
            featureType
62
    );
63
    append.begin();
64
    List<String> SQLs = new ArrayList<>();
65
    SQLs.addAll(append.getPreviousSQLs());
66
    SQLs.add( append.getSQL());
67
    SQLs.addAll(append.getPostSQLs());
68
    assertEquals("Append num SQLs", expectedSQLs.size(), SQLs.size());
69
    for (int i = 0; i < expectedSQLs.size(); i++) {
70
      assertEquals("Append SQL "+i, expectedSQLs.get(i), SQLs.get(i));
71
    }
72
    
73
    for (Feature sourceFeature : sourceStore.getFeatureSet()) {
74
      List<Object> parametersSQL = append.getSQLParameters(TestUtils.getFeatureProvider(sourceFeature));
75
      List<Object> expectedParameters = this.getExpectedparameters(sourceFeature);
76
      assertEquals("Append num. parameters", parametersSQL.size(), expectedParameters.size());
77
      for (int i = 0; i < expectedParameters.size(); i++) {
78
        assertEquals("Append parameter "+i, expectedParameters.get(i), parametersSQL.get(i));
79
      }
80
    }
81
    append.end();
82
  }
83

  
84
  private List<Object> getExpectedparameters(Feature sourceFeature) {
85
    FeatureType ft = sourceFeature.getType();
86
    List<Object> values = new ArrayList<>();
87
    for (FeatureAttributeDescriptor attr : ft) {
88
      Object v = sourceFeature.get(attr.getIndex());
89
      values.add(v);
90
      if( attr.getType()==DataTypes.GEOMETRY ) {
91
        String srs = attr.getSRS().getAbrev();
92
        values.add(Integer.parseInt(srs.split(":")[1]));
93
      }
94
    }
95
    return values;
96
  }
97

  
98
}
tags/org.gvsig.postgresql-2.0.258/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/operations/sql/TestFetchFeatureType.java
1
package org.gvsig.postgresql.dal.operations.sql;
2

  
3
import java.util.Collections;
4
import java.util.List;
5
import junit.framework.TestCase;
6
import org.gvsig.fmap.dal.feature.FeatureStore;
7
import org.gvsig.fmap.dal.feature.FeatureType;
8
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
9
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory;
10
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
11
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
12
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.FetchFeatureTypeOperation;
13
import org.gvsig.postgresql.dal.TestUtils;
14
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
15
import org.slf4j.Logger;
16
import org.slf4j.LoggerFactory;
17

  
18
public class TestFetchFeatureType extends TestCase {
19

  
20
  private static final Logger LOGGER = LoggerFactory.getLogger(TestFetchFeatureType.class);
21

  
22
  public TestFetchFeatureType(String testName) {
23
    super(testName);
24
  }
25

  
26
  @Override
27
  protected void setUp() throws Exception {
28
    super.setUp();
29
    new DefaultLibrariesInitializer().fullInitialize();
30
  }
31

  
32
  @Override
33
  protected void tearDown() throws Exception {
34
    super.tearDown();
35
  }
36

  
37
  // TODO add test methods here. The name must begin with 'test'. For example:
38
  // public void testHello() {}
39
  
40
  public void testFetchFeatureType() throws Exception {
41
    JDBCHelper helper = TestUtils.getJDBCHelper();
42
    JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
43
    OperationsFactory operations = helper.getOperations();
44

  
45
    List<String> expectedSQLs = TestUtils.getSQLs("fetchFeatureType.sql");
46
    
47
    FeatureStore sourceStore = TestUtils.openSourceStore1();
48

  
49
    TableReference table = operations.createTableReference(
50
            "dbtest", 
51
            sqlbuilder.default_schema(), 
52
            "test", 
53
            null
54
    );
55
    FeatureType featureType = sourceStore.getDefaultFeatureType();
56
    FetchFeatureTypeOperation fetchFeatureType = operations.createFetchFeatureType(
57
            featureType.getEditable(),
58
            table,
59
            Collections.EMPTY_LIST,
60
            null, // "Geometry" 
61
            featureType.getDefaultSRS()
62
    );
63
    
64
    
65
    String retrieveFirstRowOfTableSQL = fetchFeatureType.getSQLToRetrieveMetadataOfTable();
66
    String retrievePrimaryKeysFromInformationSchemaSQL = fetchFeatureType.getSQLToRetrievePrimaryKeysFromInformationSchema();
67

  
68
    assertEquals("FetchFeatureType first row SQL", expectedSQLs.get(0), retrieveFirstRowOfTableSQL);
69
    assertEquals("FetchFeatureType get primery keys SQL", expectedSQLs.get(1), retrievePrimaryKeysFromInformationSchemaSQL);
70
  }
71

  
72
}
tags/org.gvsig.postgresql-2.0.258/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/operations/sql/TestCount.java
1
package org.gvsig.postgresql.dal.operations.sql;
2

  
3
import java.util.List;
4
import junit.framework.TestCase;
5
import org.gvsig.fmap.dal.feature.FeatureStore;
6
import org.gvsig.fmap.dal.feature.FeatureType;
7
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
8
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory;
9
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
10
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
11
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.CountOperation;
12
import org.gvsig.postgresql.dal.TestUtils;
13
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
14
import org.slf4j.Logger;
15
import org.slf4j.LoggerFactory;
16

  
17
public class TestCount extends TestCase {
18

  
19
  private static final Logger LOGGER = LoggerFactory.getLogger(TestCount.class);
20

  
21
  public TestCount(String testName) {
22
    super(testName);
23
  }
24

  
25
  @Override
26
  protected void setUp() throws Exception {
27
    super.setUp();
28
    new DefaultLibrariesInitializer().fullInitialize();
29
  }
30

  
31
  @Override
32
  protected void tearDown() throws Exception {
33
    super.tearDown();
34
  }
35

  
36
  // TODO add test methods here. The name must begin with 'test'. For example:
37
  // public void testHello() {}
38
  
39
  public void testCount() throws Exception {
40
    JDBCHelper helper = TestUtils.getJDBCHelper();
41
    JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
42
    OperationsFactory operations = helper.getOperations();
43

  
44
    List<String> expectedSQLs = TestUtils.getSQLs("count.sql");
45
    
46
    FeatureStore sourceStore = TestUtils.openSourceStore1();
47

  
48
    TableReference table = operations.createTableReference(
49
            "dbtest", 
50
            sqlbuilder.default_schema(), 
51
            "test", 
52
            null
53
    );
54
    FeatureType featureType = sourceStore.getDefaultFeatureType();
55
    CountOperation count = operations.createCount(
56
            featureType,
57
            table, 
58
            null, null
59
    );
60
    
61
    String sql = count.getSQL();
62
    assertEquals("Count SQL", expectedSQLs.get(0), sql);
63
  }
64

  
65
}
tags/org.gvsig.postgresql-2.0.258/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/operations/sql/TestResultSetForSetProvider.java
1
package org.gvsig.postgresql.dal.operations.sql;
2

  
3
import java.util.List;
4
import junit.framework.TestCase;
5
import org.gvsig.fmap.dal.feature.FeatureStore;
6
import org.gvsig.fmap.dal.feature.FeatureType;
7
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
8
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory;
9
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
10
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
11
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.ResultSetForSetProviderOperation;
12
import org.gvsig.postgresql.dal.TestUtils;
13
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
14
import org.slf4j.Logger;
15
import org.slf4j.LoggerFactory;
16

  
17
public class TestResultSetForSetProvider extends TestCase {
18

  
19
  private static final Logger LOGGER = LoggerFactory.getLogger(TestResultSetForSetProvider.class);
20

  
21
  public TestResultSetForSetProvider(String testName) {
22
    super(testName);
23
  }
24

  
25
  @Override
26
  protected void setUp() throws Exception {
27
    super.setUp();
28
    new DefaultLibrariesInitializer().fullInitialize();
29
  }
30

  
31
  @Override
32
  protected void tearDown() throws Exception {
33
    super.tearDown();
34
  }
35

  
36
  // TODO add test methods here. The name must begin with 'test'. For example:
37
  // public void testHello() {}
38
  
39
  public void testResultSetForSetProvider() throws Exception {
40
    JDBCHelper helper = TestUtils.getJDBCHelper();
41
    JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
42
    OperationsFactory operations = helper.getOperations();
43

  
44
    List<String> expectedSQLs = TestUtils.getSQLs("resultSetForSetProvider.sql");
45
    
46
    FeatureStore sourceStore = TestUtils.openSourceStore1();
47

  
48
    TableReference table = operations.createTableReference(
49
            "dbtest", 
50
            sqlbuilder.default_schema(), 
51
            "test", 
52
            null
53
    );
54
    FeatureType featureType = sourceStore.getDefaultFeatureType();
55
    ResultSetForSetProviderOperation resultSetForSetProvider = operations.createResultSetForSetProvider(
56
            table,
57
            null,
58
            null,
59
            null,
60
            featureType,
61
            featureType,
62
            0,
63
            0, 
64
            0
65
    );
66
    String sql = resultSetForSetProvider.getSQL();
67
    System.out.println("###### testResultSetForSetProvider");
68
    System.out.println("###### SQL:" + sql + ";");
69
    System.out.println("###### EXP:" + expectedSQLs.get(0) + ";");
70
    assertEquals("ResultSetForSetProvider SQL", expectedSQLs.get(0), sql);
71
  }
72

  
73
}
tags/org.gvsig.postgresql-2.0.258/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/operations/sql/TestFetchFeatureProviderByReference.java
1
package org.gvsig.postgresql.dal.operations.sql;
2

  
3
import java.util.List;
4
import junit.framework.TestCase;
5
import org.gvsig.fmap.dal.feature.Feature;
6
import org.gvsig.fmap.dal.feature.FeatureReference;
7
import org.gvsig.fmap.dal.feature.FeatureStore;
8
import org.gvsig.fmap.dal.feature.FeatureType;
9
import org.gvsig.fmap.dal.feature.impl.featurereference.FeatureReferenceFactory;
10
import org.gvsig.fmap.dal.feature.spi.FeatureReferenceProviderServices;
11
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
12
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory;
13
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
14
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
15
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.FetchFeatureProviderByReferenceOperation;
16
import org.gvsig.postgresql.dal.TestUtils;
17
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
18
import org.slf4j.Logger;
19
import org.slf4j.LoggerFactory;
20

  
21
public class TestFetchFeatureProviderByReference extends TestCase {
22

  
23
  private static final Logger LOGGER = LoggerFactory.getLogger(TestFetchFeatureProviderByReference.class);
24

  
25
  public TestFetchFeatureProviderByReference(String testName) {
26
    super(testName);
27
  }
28

  
29
  @Override
30
  protected void setUp() throws Exception {
31
    super.setUp();
32
    new DefaultLibrariesInitializer().fullInitialize();
33
  }
34

  
35
  @Override
36
  protected void tearDown() throws Exception {
37
    super.tearDown();
38
  }
39

  
40
  // TODO add test methods here. The name must begin with 'test'. For example:
41
  // public void testHello() {}
42
  
43
  public void testFetchFeatureProviderByReference() throws Exception {
44
    JDBCHelper helper = TestUtils.getJDBCHelper();
45
    JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
46
    OperationsFactory operations = helper.getOperations();
47

  
48
    List<String> expectedSQLs = TestUtils.getSQLs("fetchFeatureProviderByReference.sql");
49
    
50
    FeatureStore sourceStore = TestUtils.openSourceStore1();
51
    TableReference table = operations.createTableReference(
52
            "dbtest", 
53
            sqlbuilder.default_schema(), 
54
            "test", 
55
            null
56
    );
57
    FeatureType featureType = sourceStore.getDefaultFeatureType();
58
    Feature feature = sourceStore.getFeatures().get(1);    
59
    FeatureReference reference = FeatureReferenceFactory.createReferencePKFromFeature(feature);
60
    
61
    FetchFeatureProviderByReferenceOperation fetchFeatureProviderByReference = operations.createFetchFeatureProviderByReference(
62
            (FeatureReferenceProviderServices) reference,
63
            featureType, 
64
            table
65
    );
66
    
67
    String sql = fetchFeatureProviderByReference.getSQL();
68
    assertEquals("FetchFeatureProviderByReference SQL", expectedSQLs.get(0), sql);
69
  }
70

  
71
}
tags/org.gvsig.postgresql-2.0.258/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/operations/sql/TestCalculateEnvelope.java
1
package org.gvsig.postgresql.dal.operations.sql;
2

  
3
import java.util.List;
4
import junit.framework.TestCase;
5
import org.gvsig.fmap.dal.feature.FeatureStore;
6
import org.gvsig.fmap.dal.feature.FeatureType;
7
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
8
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory;
9
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
10
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
11
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.CalculateEnvelopeOfColumnOperation;
12
import org.gvsig.postgresql.dal.TestUtils;
13
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
14
import org.slf4j.Logger;
15
import org.slf4j.LoggerFactory;
16

  
17
public class TestCalculateEnvelope extends TestCase {
18

  
19
  private static final Logger LOGGER = LoggerFactory.getLogger(TestCalculateEnvelope.class);
20

  
21
  public TestCalculateEnvelope(String testName) {
22
    super(testName);
23
  }
24

  
25
  @Override
26
  protected void setUp() throws Exception {
27
    super.setUp();
28
    new DefaultLibrariesInitializer().fullInitialize();
29
  }
30

  
31
  @Override
32
  protected void tearDown() throws Exception {
33
    super.tearDown();
34
  }
35

  
36
  // TODO add test methods here. The name must begin with 'test'. For example:
37
  // public void testHello() {}
38
  
39
  public void testCalculateEnvelope() throws Exception {
40
    JDBCHelper helper = TestUtils.getJDBCHelper();
41
    JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
42
    OperationsFactory operations = helper.getOperations();
43

  
44
    List<String> expectedSQLs = TestUtils.getSQLs("calculateEnvelope.sql");
45
    
46
    FeatureStore sourceStore = TestUtils.openSourceStore1();
47

  
48
    TableReference table = operations.createTableReference(
49
            "dbtest", 
50
            sqlbuilder.default_schema(), 
51
            "test", 
52
            null
53
    );
54
    FeatureType featureType = sourceStore.getDefaultFeatureType();
55
    CalculateEnvelopeOfColumnOperation calculateEnvelope = operations.createCalculateEnvelopeOfColumn(
56
            featureType,
57
            table, 
58
            "Geometry",
59
            null,
60
            null, 
61
            featureType.getDefaultSRS()
62
    );
63
    
64
    String sql = calculateEnvelope.getSQL();
65
    System.out.println("###### testCalculateEnvelope");
66
    System.out.println("###### SQL:" + sql + ";");
67
    System.out.println("###### EXP:" + expectedSQLs.get(0) + ";");
68
    assertEquals("CalculateEnvelope SQL", expectedSQLs.get(0), sql);
69
  }
70

  
71
}
tags/org.gvsig.postgresql-2.0.258/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/operations/sql/TestCreateTable.java
1
package org.gvsig.postgresql.dal.operations.sql;
2

  
3
import java.util.List;
4
import junit.framework.TestCase;
5
import org.gvsig.fmap.dal.feature.FeatureStore;
6
import org.gvsig.fmap.dal.feature.FeatureType;
7
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
8
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory;
9
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
10
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
11
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.CreateTableOperation;
12
import org.gvsig.postgresql.dal.TestUtils;
13
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
14
import org.slf4j.Logger;
15
import org.slf4j.LoggerFactory;
16

  
17
public class TestCreateTable extends TestCase {
18

  
19
  private static final Logger LOGGER = LoggerFactory.getLogger(TestCreateTable.class);
20

  
21
  public TestCreateTable(String testName) {
22
    super(testName);
23
  }
24

  
25
  @Override
26
  protected void setUp() throws Exception {
27
    super.setUp();
28
    new DefaultLibrariesInitializer().fullInitialize();
29
  }
30

  
31
  @Override
32
  protected void tearDown() throws Exception {
33
    super.tearDown();
34
  }
35

  
36
  // TODO add test methods here. The name must begin with 'test'. For example:
37
  // public void testHello() {}
38
  
39
  public void testCreateTable() throws Exception {
40
    JDBCHelper helper = TestUtils.getJDBCHelper();
41
    JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
42
    OperationsFactory operations = helper.getOperations();
43

  
44
    List<String> expectedSQLs = TestUtils.getSQLs("createTable.sql");
45
    
46
    FeatureStore sourceStore = TestUtils.openSourceStore1();
47

  
48
    TableReference table = operations.createTableReference(
49
            "dbtest", 
50
            sqlbuilder.default_schema(), 
51
            "test", 
52
            null
53
    );
54
    FeatureType featureType = sourceStore.getDefaultFeatureType();
55
    CreateTableOperation createTable = operations.createTable(
56
            table,
57
            featureType,
58
            null,
59
            null
60
    );
61
    List<String> SQLs = createTable.getSQLs();
62
    assertEquals("CreateTable num. SQLs", expectedSQLs.size(), SQLs.size());
63
    for (int i = 0; i < expectedSQLs.size(); i++) {
64
      assertEquals("CreateTable SQL "+i, expectedSQLs.get(i), SQLs.get(i));
65
    }
66

  
67
  }
68

  
69
}
tags/org.gvsig.postgresql-2.0.258/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/operations/sql/TestDropTable.java
1
package org.gvsig.postgresql.dal.operations.sql;
2

  
3
import java.util.List;
4
import junit.framework.TestCase;
5
import org.gvsig.fmap.dal.feature.FeatureStore;
6
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
7
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory;
8
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
9
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
10
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.DropTableOperation;
11
import org.gvsig.postgresql.dal.TestUtils;
12
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
13
import org.slf4j.Logger;
14
import org.slf4j.LoggerFactory;
15

  
16
public class TestDropTable extends TestCase {
17

  
18
  private static final Logger LOGGER = LoggerFactory.getLogger(TestDropTable.class);
19

  
20
  public TestDropTable(String testName) {
21
    super(testName);
22
  }
23

  
24
  @Override
25
  protected void setUp() throws Exception {
26
    super.setUp();
27
    new DefaultLibrariesInitializer().fullInitialize();
28
  }
29

  
30
  @Override
31
  protected void tearDown() throws Exception {
32
    super.tearDown();
33
  }
34

  
35
  // TODO add test methods here. The name must begin with 'test'. For example:
36
  // public void testHello() {}
37
  
38
  public void testDropTable() throws Exception {
39
    JDBCHelper helper = TestUtils.getJDBCHelper();
40
    JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
41
    OperationsFactory operations = helper.getOperations();
42

  
43
    List<String> expectedSQLs = TestUtils.getSQLs("dropTable.sql");
44
    
45
    FeatureStore sourceStore = TestUtils.openSourceStore1();
46

  
47
    TableReference table = operations.createTableReference(
48
            "dbtest", 
49
            sqlbuilder.default_schema(), 
50
            "test", 
51
            null
52
    );
53
    DropTableOperation dropTable = operations.createDropTable(
54
            table
55
    );
56
    List<String> SQLs = dropTable.getSQLs();
57
    assertEquals("DropTable num. SQLs", expectedSQLs.size(), SQLs.size());
58
    for (int i = 0; i < expectedSQLs.size(); i++) {
59
      assertEquals("DropTable SQL "+i, expectedSQLs.get(i), SQLs.get(i));
60
    }
61
  }
62

  
63
}
tags/org.gvsig.postgresql-2.0.258/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/operations/sql/TestTableIsEmpty.java
1
package org.gvsig.postgresql.dal.operations.sql;
2

  
3
import java.util.List;
4
import junit.framework.TestCase;
5
import org.gvsig.fmap.dal.feature.FeatureStore;
6
import org.gvsig.fmap.dal.feature.FeatureType;
7
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
8
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory;
9
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
10
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
11
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.TableIsEmptyOperation;
12
import org.gvsig.postgresql.dal.TestUtils;
13
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
14
import org.slf4j.Logger;
15
import org.slf4j.LoggerFactory;
16

  
17
public class TestTableIsEmpty extends TestCase {
18

  
19
  private static final Logger LOGGER = LoggerFactory.getLogger(TestTableIsEmpty.class);
20

  
21
  public TestTableIsEmpty(String testName) {
22
    super(testName);
23
  }
24

  
25
  @Override
26
  protected void setUp() throws Exception {
27
    super.setUp();
28
    new DefaultLibrariesInitializer().fullInitialize();
29
  }
30

  
31
  @Override
32
  protected void tearDown() throws Exception {
33
    super.tearDown();
34
  }
35

  
36
  // TODO add test methods here. The name must begin with 'test'. For example:
37
  // public void testHello() {}
38
  
39
  public void testTableIsEmpty() throws Exception {
40
    JDBCHelper helper = TestUtils.getJDBCHelper();
41
    JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
42
    OperationsFactory operations = helper.getOperations();
43

  
44
    List<String> expectedSQLs = TestUtils.getSQLs("tableIsEmpty.sql");
45
    
46
    FeatureStore sourceStore = TestUtils.openSourceStore1();
47

  
48
    TableReference table = operations.createTableReference(
49
            "dbtest", 
50
            sqlbuilder.default_schema(), 
51
            "test", 
52
            null
53
    );
54
    FeatureType featureType = sourceStore.getDefaultFeatureType();
55
    TableIsEmptyOperation tableIsEmpty = operations.createTableIsEmpty(
56
            featureType,
57
            table,
58
            null, 
59
            null
60
    );
61
    
62
    String sql = tableIsEmpty.getSQL();
63
    System.out.println("###### SQL:" + sql + ";");
64
    System.out.println("###### EXP:" + expectedSQLs.get(0) + ";");
65
    assertEquals("TableIsEmpty SQL", expectedSQLs.get(0), sql);
66
  }
67

  
68
}
tags/org.gvsig.postgresql-2.0.258/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/operations/sql/TestPerformChanges.java
1
package org.gvsig.postgresql.dal.operations.sql;
2

  
3
import java.util.Collections;
4
import java.util.List;
5
import junit.framework.TestCase;
6
import org.gvsig.fmap.dal.DALLocator;
7
import org.gvsig.fmap.dal.DataTypes;
8
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor;
9
import org.gvsig.fmap.dal.feature.EditableFeatureType;
10
import org.gvsig.fmap.dal.feature.FeatureStore;
11
import org.gvsig.fmap.dal.feature.FeatureType;
12
import org.gvsig.fmap.dal.feature.FeatureType.FeatureTypeChanged;
13
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
14
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory;
15
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
16
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
17
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.PerformChangesOperation;
18
import org.gvsig.postgresql.dal.TestUtils;
19
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
20
import org.slf4j.Logger;
21
import org.slf4j.LoggerFactory;
22

  
23
public class TestPerformChanges extends TestCase {
24

  
25
  private static final Logger LOGGER = LoggerFactory.getLogger(TestPerformChanges.class);
26

  
27
  public TestPerformChanges(String testName) {
28
    super(testName);
29
  }
30

  
31
  @Override
32
  protected void setUp() throws Exception {
33
    super.setUp();
34
    new DefaultLibrariesInitializer().fullInitialize();
35
  }
36

  
37
  @Override
38
  protected void tearDown() throws Exception {
39
    super.tearDown();
40
  }
41

  
42
  // TODO add test methods here. The name must begin with 'test'. For example:
43
  // public void testHello() {}
44
  
45
  public void testPerformChanges() throws Exception {
46
    JDBCHelper helper = TestUtils.getJDBCHelper();
47
    JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
48
    OperationsFactory operations = helper.getOperations();
49

  
50
    List<String> expectedSQLs = TestUtils.getSQLs("performChanges.sql");
51
    
52
    FeatureStore sourceStore = TestUtils.openSourceStore1();
53

  
54
    TableReference table = operations.createTableReference(
55
            "dbtest", 
56
            sqlbuilder.default_schema(), 
57
            "test", 
58
            null
59
    );
60
    FeatureType featureType = sourceStore.getDefaultFeatureType();
61
    
62
    
63
    FeatureTypeChanged featureTypeChanged = new FeatureTypeChanged() {
64
      @Override
65
      public FeatureType getSource() {
66
        EditableFeatureType ft = DALLocator.getDataManager().createFeatureType();
67
        EditableFeatureAttributeDescriptor id = ft.add("ID", DataTypes.INT);
68
        id.copyFrom(featureType.getAttributeDescriptor("ID"));
69
        return ft;
70
      }
71

  
72
      @Override
73
      public FeatureType getTarget() {
74
        return featureType;
75
      }
76
    };
77
    List<FeatureTypeChanged> featureTypesChangeds = Collections.singletonList(featureTypeChanged);
78
    
79
    PerformChangesOperation performChanges = operations.createPerformChanges(
80
            table, 
81
            sourceStore.getDefaultFeatureType(),
82
            null, 
83
            null, 
84
            null, 
85
            featureTypesChangeds.iterator()
86
    );
87
    String insertSQL = performChanges.getInsertSQL();
88
    String deleteSQL = performChanges.getDeleteSQL();
89
    String updateSQL = performChanges.getUpdateSQL();
90
    List<String> updateTableSQLs = performChanges.getUpdateTableSQLs();
91

  
92
    assertEquals("Insert SQL", expectedSQLs.get(0), insertSQL);
93
    assertEquals("Delete SQL", expectedSQLs.get(1), deleteSQL);
94
    assertEquals("Update SQL", expectedSQLs.get(2), updateSQL);
95
    assertEquals("UpdateTable num. SQLs", expectedSQLs.size()-3, updateTableSQLs.size());
96
    for (int i = 0; i < updateTableSQLs.size(); i++) {
97
      assertEquals("UpdateTable SQL "+i, expectedSQLs.get(i+3), updateTableSQLs.get(i));
98
    }
99
    
100
    // FIXME: El ALTER TABLE de una columna geometria no funciona
101
  }
102

  
103
}
tags/org.gvsig.postgresql-2.0.258/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/TestUtilsPostgreSQL.java
1
package org.gvsig.postgresql.dal;
2

  
3
import java.net.URL;
4
import java.util.Properties;
5
import org.gvsig.fmap.dal.DALLocator;
6
import org.gvsig.fmap.dal.DataManager;
7
import org.gvsig.fmap.dal.feature.FeatureStore;
8
import org.gvsig.fmap.dal.store.jdbc2.AbstractTestUtils;
9
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
10
import org.gvsig.fmap.dal.store.jdbc2.spi.FakeConnectionProvider;
11

  
12
/**
13
 *
14
 * @author jjdelcerro
15
 */
16
@SuppressWarnings("UseSpecificCatch")
17
public class TestUtilsPostgreSQL extends AbstractTestUtils {
18

  
19
    @Override
20
    public String getProviderName() {
21
        return PostgreSQLLibrary.NAME;
22
    }
23

  
24
    @Override
25
    public String getExpectedsPath() {
26
        return "/org/gvsig/postgresql/dal";
27
    }
28
    
29
    @Override
30
    protected Properties getProperties() {
31
        if (this.properties == null) {
32
            try {
33
                URL url = this.getClass().getResource("postgresql.properties");
34
                Properties props = new Properties();
35
                props.load(url.openStream());
36
                String[] keys = new String[]{
37
                    "PostgreSQLEnabled",
38
                    "PostgreSQLHost",
39
                    "PostgreSQLPort",
40
                    "PostgreSQLDbname",
41
                    "PostgreSQLSchema",
42
                    "PostgreSQLUser",
43
                    "PostgreSQLPassword"
44
                };
45
                for (String key : keys) {
46
                    if (System.getenv().containsKey(key)) {
47
                        props.setProperty(key, System.getenv(key));
48
                    }
49
                }
50
                this.properties = props;
51
            } catch (Exception ex) {
52
                throw new RuntimeException(ex);
53
            } 
54
        }
55
        return this.properties;
56
    }
57

  
58
    @Override
59
    public boolean isTheDatabaseAvailable() {
60
        return this.getPropertyBoolean("PostgreSQLEnabled");
61
    }
62

  
63
    @Override
64
    public JDBCHelper createJDBCHelper() throws Exception {
65
        PostgreSQLServerExplorerParameters params = this.getServerExplorerParameters("fake");
66
        PostgreSQLHelper helper = new PostgreSQLHelper(params, new FakeConnectionProvider());
67
      return helper;
68
    }
69

  
70
    @Override
71
    public PostgreSQLServerExplorerParameters getServerExplorerParameters(String dbname) throws Exception {
72
        DataManager dataManager = DALLocator.getDataManager();
73
        PostgreSQLServerExplorerParameters conn = (PostgreSQLServerExplorerParameters) dataManager.createServerExplorerParameters(this.getProviderName());
74
        conn.setHost(getProperty("PostgreSQLHost"));
75
        conn.setPort(getPropertyInt("PostgreSQLPort", 5432));
76
        conn.setDBName(getProperty("PostgreSQLDbname"));
77
        conn.setSchema(getProperty("PostgreSQLSchema"));
78
        conn.setUser(getProperty("PostgreSQLUser"));
79
        conn.setPassword(getProperty("PostgreSQLPassword"));
80
        conn.setShowInformationDBTables(false);
81
        return conn;
82
    }
83

  
84
    @Override
85
    public void runSQLToCheckSyntax(String testName, FeatureStore datacsv, String testTableName, String sql) throws Exception {
86
        // Do nothing
87
    }
88
 
89
}
tags/org.gvsig.postgresql-2.0.258/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/TestComputedAttributes.java
1
package org.gvsig.postgresql.dal;
2

  
3
import org.gvsig.fmap.dal.store.jdbc2.AbstractTestComputedAttributes;
4
import org.gvsig.fmap.dal.store.jdbc2.AbstractTestUtils;
5

  
6
public class TestComputedAttributes extends AbstractTestComputedAttributes {
7
    
8
    public TestComputedAttributes(String testName) {
9
        super(testName);
10
    }
11

  
12
    @Override
13
    protected AbstractTestUtils createUtils() {
14
        return new TestUtilsPostgreSQL();
15
    }
16

  
17
    @Override
18
    public void testComputed1() throws Exception {
19
        super.testComputed1(); 
20
    }
21

  
22
    @Override
23
    public void testComputed2() throws Exception {
24
        super.testComputed2(); 
25
    }
26
    
27
}
tags/org.gvsig.postgresql-2.0.258/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/PostgreSQLBuilderTest.java
1
package org.gvsig.postgresql.dal;
2

  
3
import junit.framework.TestCase;
4
import org.apache.commons.lang3.ArrayUtils;
5
import org.cresques.cts.IProjection;
6
import org.gvsig.expressionevaluator.ExpressionBuilder;
7
import org.gvsig.expressionevaluator.GeometryExpressionBuilder;
8
import org.gvsig.fmap.crs.CRSFactory;
9
import org.gvsig.fmap.dal.SQLBuilder;
10
import org.gvsig.fmap.dal.SQLBuilder.Privilege;
11
import org.gvsig.fmap.dal.feature.spi.SQLBuilderBase;
12
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
13
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.OperationsFactoryBase;
14
import org.gvsig.fmap.geom.DataTypes;
15
import org.gvsig.fmap.geom.Geometry;
16
import org.gvsig.fmap.geom.GeometryLocator;
17
import org.gvsig.fmap.geom.GeometryManager;
18
import org.gvsig.fmap.geom.primitive.Polygon;
19
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
20

  
21
public class PostgreSQLBuilderTest extends TestCase {
22
    
23
    public PostgreSQLBuilderTest(String testName) {
24
        super(testName);
25
    }
26

  
27
    @Override
28
    protected void setUp() throws Exception {
29
        super.setUp();
30
        new DefaultLibrariesInitializer().fullInitialize();
31
    }
32

  
33
    @Override
34
    protected void tearDown() throws Exception {
35
        super.tearDown();
36
    }
37

  
38
    private SQLBuilder createSQLBuilder() {
39
        return new PostgreSQLBuilder(new PostgreSQLHelper(new FakePostgreSQLConnectionParameters()));
40
    }
41
    
42
    public void testCalulateEnvelopeOfColumn() throws Exception {
43
        
44
        TableReference table = new OperationsFactoryBase.DefaultTableReference("master","dbo","test1", null);
45
        String columnName = "the_geom";
46
        
47
        SQLBuilder sqlbuilder = createSQLBuilder();
48
        GeometryExpressionBuilder expbuilder = sqlbuilder.expression();
49
        
50
        sqlbuilder.select().column().value(
51
            expbuilder.as_geometry(
52
                expbuilder.ST_ExtentAggregate(
53
                        expbuilder.column(columnName)
54
                )
55
            )
56
        );
57
        //sqlbuilder.select().group_by(expbuilder.column(columnName));
58
        sqlbuilder.select().from().table()
59
                .database(table.getDatabase())
60
                .schema(table.getSchema())
61
                .name(table.getTable());
62
        sqlbuilder.select().from().subquery(table.getSubquery());
63

  
64
        sqlbuilder.select().where().and(        
65
            expbuilder.not_is_null(expbuilder.column(columnName))
66
        );
67
        
68
        System.out.println("# Test:: testCalulateEnvelopeOfColumn");
69
        System.out.println("# SQL:: " + sqlbuilder.toString());
70
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
71
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
72
        assertEquals(
73
                "SELECT ST_AsBinary(ST_Extent(\"the_geom\")) FROM \"master\".\"dbo\".\"test1\" WHERE ( (\"the_geom\") IS NOT NULL )",
74
                sqlbuilder.toString()
75
        );
76
        assertEquals(
77
                "[the_geom]",
78
                ArrayUtils.toString(sqlbuilder.variables_names())
79
        );
80
        assertEquals(
81
                "[]",
82
                ArrayUtils.toString(sqlbuilder.parameters_names())
83
        );
84
    }
85
 
86
    public void testCalulateEnvelope() throws Exception {
87
        GeometryManager geometryManager = GeometryLocator.getGeometryManager();
88
        IProjection proj = CRSFactory.getCRS("EPSG:4326");
89
        
90
        Polygon limit = geometryManager.createPolygon(Geometry.SUBTYPES.GEOM2D);
91
        limit.addVertex(0, 0);
92
        limit.addVertex(0, 100);
93
        limit.addVertex(100, 100);
94
        limit.addVertex(100, 0);
95
        limit.addVertex(0, 0);
96
        
97
        SQLBuilder sqlbuilder = createSQLBuilder();
98
        GeometryExpressionBuilder expbuilder = sqlbuilder.expression();
99
        
100
        sqlbuilder.select().column().value(
101
            expbuilder.as_geometry(
102
              expbuilder.ST_ExtentAggregate(
103
                expbuilder.column("the_geom")
104
              )
105
            )
106
        ).as("envelope");
107
        sqlbuilder.select().from().table().database("master").schema("dbo").name("test1");
108
        sqlbuilder.select().where().set(
109
            expbuilder.ST_Intersects(
110
                expbuilder.ST_Envelope(
111
                    expbuilder.column("the_geom")
112
                ),
113
                expbuilder.geometry(limit, proj)
114
            )
115
        );
116
        sqlbuilder.select().where().and(
117
                expbuilder.custom("x = 27")
118
        );
119
        
120
        System.out.println("# Test:: testCalulateEnvelope");
121
        System.out.println("# SQL:: " + sqlbuilder.toString());
122
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
123
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
124
        assertEquals(
125
                "SELECT ST_AsBinary(ST_Extent(\"the_geom\")) AS \"envelope\" FROM \"master\".\"dbo\".\"test1\" WHERE (ST_Intersects((ST_Envelope(\"the_geom\")), (ST_GeomFromWKB(('\\x000000000300000001000000050000000000000000000000000000000000000000000000004059000000000000405900000000000040590000000000004059000000000000000000000000000000000000000000000000000000000000'::bytea), (4326)))) AND x = 27)",
126
                sqlbuilder.toString()
127
        );
128
        assertEquals(
129
                "[the_geom]",
130
                ArrayUtils.toString(sqlbuilder.variables_names())
131
        );
132
        assertEquals(
133
                "[]",
134
                ArrayUtils.toString(sqlbuilder.parameters_names())
135
        );
136
    }
137

  
138
    public void testCount() throws Exception {
139
        SQLBuilder sqlbuilder = createSQLBuilder();
140
        ExpressionBuilder expbuilder = sqlbuilder.expression();
141
        
142
        sqlbuilder.select().column().value(sqlbuilder.count().all());
143
        sqlbuilder.select().from().table().database("master").schema("dbo").name("test1");
144
        sqlbuilder.select().from().subquery(null);
145
        sqlbuilder.select().where().set( expbuilder.custom("pp = 200"));
146

  
147
        System.out.println("# Test:: testCount");
148
        System.out.println("# SQL:: " + sqlbuilder.toString());
149
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
150
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
151

  
152
        //# Test:: testCount
153
        //# SQL:: SELECT COUNT(*) FROM "test1" WHERE pp = 200
154
        //# Variables:: []
155
        //# Parametros:: []
156

  
157
        assertEquals(
158
                "SELECT COUNT(*) FROM \"master\".\"dbo\".\"test1\" WHERE pp = 200",
159
                sqlbuilder.toString()
160
        );
161
        assertEquals(
162
                "[]",
163
                ArrayUtils.toString(sqlbuilder.variables_names())
164
        );
165
        assertEquals(
166
                "[]",
167
                ArrayUtils.toString(sqlbuilder.parameters_names())
168
        );
169
    }
170
    
171
    public void testCreateTable() throws Exception {
172
        SQLBuilder sqlbuilder = createSQLBuilder();
173
        ExpressionBuilder expbuilder = sqlbuilder.expression();
174

  
175
        sqlbuilder.create_table().table().database("master").schema("dbo").name("test1");
176
        sqlbuilder.create_table().add_column(
177
                "name",
178
                DataTypes.STRING,
179
                45,
180
                0,
181
                0,
182
                false,
183
                false,
184
                true,
185
                false,
186
                null
187
        );
188
        sqlbuilder.create_table().add_column(
189
                "id",
190
                DataTypes.INT,
191
                0,
192
                0,
193
                0,
194
                true,
195
                false,
196
                false,
197
                true,
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff